package com.logicfish.wpbench2.parser.antlr.internal; 

import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
import com.logicfish.wpbench2.services.WpBenchGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalWpBenchParser extends AbstractInternalAntlrParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'import'", "'plugin'", "'library'", "'title'", "'version'", "'pluginURI'", "'description'", "'author'", "'skin'", "'include'", "'script'", "'css'", "'admin-script'", "'admin-css'", "'wp-plugin'", "'wp-theme'", "'page'", "'{'", "'}'", "'options'", "'options-page'", "'site'", "'string'", "'text'", "'url'", "'integer'", "'float'", "'range'", "'select'", "'choice'", "'boolean'", "'date'", "'colour'", "'color'", "'custom'", "'('", "','", "')'", "'default'", "'='", "'html'", "'max'", "'min'", "'className'", "'action'", "'filter'", "'short'", "'function'"
    };
    public static final int RULE_ID=5;
    public static final int T__29=29;
    public static final int T__28=28;
    public static final int T__27=27;
    public static final int T__26=26;
    public static final int T__25=25;
    public static final int T__24=24;
    public static final int T__23=23;
    public static final int T__22=22;
    public static final int RULE_ANY_OTHER=10;
    public static final int T__21=21;
    public static final int T__20=20;
    public static final int EOF=-1;
    public static final int T__55=55;
    public static final int T__56=56;
    public static final int T__19=19;
    public static final int T__57=57;
    public static final int T__58=58;
    public static final int T__51=51;
    public static final int T__16=16;
    public static final int T__52=52;
    public static final int T__15=15;
    public static final int T__53=53;
    public static final int T__18=18;
    public static final int T__54=54;
    public static final int T__17=17;
    public static final int T__12=12;
    public static final int T__11=11;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int RULE_INT=6;
    public static final int T__50=50;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int T__46=46;
    public static final int T__47=47;
    public static final int T__44=44;
    public static final int T__45=45;
    public static final int T__48=48;
    public static final int T__49=49;
    public static final int RULE_SL_COMMENT=8;
    public static final int RULE_ML_COMMENT=7;
    public static final int T__30=30;
    public static final int T__31=31;
    public static final int RULE_STRING=4;
    public static final int T__32=32;
    public static final int T__33=33;
    public static final int T__34=34;
    public static final int T__35=35;
    public static final int T__36=36;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int T__39=39;
    public static final int RULE_WS=9;

    // delegates
    // delegators


        public InternalWpBenchParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalWpBenchParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalWpBenchParser.tokenNames; }
    public String getGrammarFileName() { return "../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g"; }



     	private WpBenchGrammarAccess grammarAccess;
     	
        public InternalWpBenchParser(TokenStream input, WpBenchGrammarAccess grammarAccess) {
            this(input);
            this.grammarAccess = grammarAccess;
            registerRules(grammarAccess.getGrammar());
        }
        
        @Override
        protected String getFirstRuleName() {
        	return "Plugin";	
       	}
       	
       	@Override
       	protected WpBenchGrammarAccess getGrammarAccess() {
       		return grammarAccess;
       	}



    // $ANTLR start "entryRulePlugin"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:67:1: entryRulePlugin returns [EObject current=null] : iv_rulePlugin= rulePlugin EOF ;
    public final EObject entryRulePlugin() throws RecognitionException {
        EObject current = null;

        EObject iv_rulePlugin = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:68:2: (iv_rulePlugin= rulePlugin EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:69:2: iv_rulePlugin= rulePlugin EOF
            {
             newCompositeNode(grammarAccess.getPluginRule()); 
            pushFollow(FOLLOW_rulePlugin_in_entryRulePlugin75);
            iv_rulePlugin=rulePlugin();

            state._fsp--;

             current =iv_rulePlugin; 
            match(input,EOF,FOLLOW_EOF_in_entryRulePlugin85); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRulePlugin"


    // $ANTLR start "rulePlugin"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:76:1: rulePlugin returns [EObject current=null] : ( (otherlv_0= 'import' ( (lv_imports_1_0= RULE_STRING ) ) )* ( ( (lv_type_2_1= 'plugin' | lv_type_2_2= 'library' ) ) ) ( (lv_name_3_0= RULE_ID ) ) ( (lv_platform_4_0= rulePlatform ) )? otherlv_5= 'title' ( (lv_title_6_0= RULE_STRING ) ) (otherlv_7= 'version' ( (lv_version_8_0= RULE_STRING ) ) )? (otherlv_9= 'pluginURI' ( (lv_pluginURI_10_0= RULE_STRING ) ) )? (otherlv_11= 'description' ( (lv_description_12_0= RULE_STRING ) ) )? (otherlv_13= 'author' ( (lv_author_14_0= RULE_STRING ) ) )? (otherlv_15= 'skin' ( (lv_skin_16_0= RULE_STRING ) ) )? (otherlv_17= 'include' ( (lv_include_18_0= RULE_STRING ) )+ )? (otherlv_19= 'script' ( (lv_script_20_0= RULE_STRING ) )+ )? (otherlv_21= 'css' ( (lv_css_22_0= RULE_STRING ) )+ )? (otherlv_23= 'admin-script' ( (lv_script_24_0= RULE_STRING ) )+ )? (otherlv_25= 'admin-css' ( (lv_adminCSS_26_0= RULE_STRING ) )+ )? ( (lv_options_27_0= ruleOptions ) )? ( (lv_optionsPage_28_0= ruleOptionsPage ) )* ( (lv_adminPages_29_0= ruleAdminPage ) )* ( (lv_functions_30_0= ruleFunction ) )* ) ;
    public final EObject rulePlugin() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_imports_1_0=null;
        Token lv_type_2_1=null;
        Token lv_type_2_2=null;
        Token lv_name_3_0=null;
        Token otherlv_5=null;
        Token lv_title_6_0=null;
        Token otherlv_7=null;
        Token lv_version_8_0=null;
        Token otherlv_9=null;
        Token lv_pluginURI_10_0=null;
        Token otherlv_11=null;
        Token lv_description_12_0=null;
        Token otherlv_13=null;
        Token lv_author_14_0=null;
        Token otherlv_15=null;
        Token lv_skin_16_0=null;
        Token otherlv_17=null;
        Token lv_include_18_0=null;
        Token otherlv_19=null;
        Token lv_script_20_0=null;
        Token otherlv_21=null;
        Token lv_css_22_0=null;
        Token otherlv_23=null;
        Token lv_script_24_0=null;
        Token otherlv_25=null;
        Token lv_adminCSS_26_0=null;
        AntlrDatatypeRuleToken lv_platform_4_0 = null;

        EObject lv_options_27_0 = null;

        EObject lv_optionsPage_28_0 = null;

        EObject lv_adminPages_29_0 = null;

        EObject lv_functions_30_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:79:28: ( ( (otherlv_0= 'import' ( (lv_imports_1_0= RULE_STRING ) ) )* ( ( (lv_type_2_1= 'plugin' | lv_type_2_2= 'library' ) ) ) ( (lv_name_3_0= RULE_ID ) ) ( (lv_platform_4_0= rulePlatform ) )? otherlv_5= 'title' ( (lv_title_6_0= RULE_STRING ) ) (otherlv_7= 'version' ( (lv_version_8_0= RULE_STRING ) ) )? (otherlv_9= 'pluginURI' ( (lv_pluginURI_10_0= RULE_STRING ) ) )? (otherlv_11= 'description' ( (lv_description_12_0= RULE_STRING ) ) )? (otherlv_13= 'author' ( (lv_author_14_0= RULE_STRING ) ) )? (otherlv_15= 'skin' ( (lv_skin_16_0= RULE_STRING ) ) )? (otherlv_17= 'include' ( (lv_include_18_0= RULE_STRING ) )+ )? (otherlv_19= 'script' ( (lv_script_20_0= RULE_STRING ) )+ )? (otherlv_21= 'css' ( (lv_css_22_0= RULE_STRING ) )+ )? (otherlv_23= 'admin-script' ( (lv_script_24_0= RULE_STRING ) )+ )? (otherlv_25= 'admin-css' ( (lv_adminCSS_26_0= RULE_STRING ) )+ )? ( (lv_options_27_0= ruleOptions ) )? ( (lv_optionsPage_28_0= ruleOptionsPage ) )* ( (lv_adminPages_29_0= ruleAdminPage ) )* ( (lv_functions_30_0= ruleFunction ) )* ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:80:1: ( (otherlv_0= 'import' ( (lv_imports_1_0= RULE_STRING ) ) )* ( ( (lv_type_2_1= 'plugin' | lv_type_2_2= 'library' ) ) ) ( (lv_name_3_0= RULE_ID ) ) ( (lv_platform_4_0= rulePlatform ) )? otherlv_5= 'title' ( (lv_title_6_0= RULE_STRING ) ) (otherlv_7= 'version' ( (lv_version_8_0= RULE_STRING ) ) )? (otherlv_9= 'pluginURI' ( (lv_pluginURI_10_0= RULE_STRING ) ) )? (otherlv_11= 'description' ( (lv_description_12_0= RULE_STRING ) ) )? (otherlv_13= 'author' ( (lv_author_14_0= RULE_STRING ) ) )? (otherlv_15= 'skin' ( (lv_skin_16_0= RULE_STRING ) ) )? (otherlv_17= 'include' ( (lv_include_18_0= RULE_STRING ) )+ )? (otherlv_19= 'script' ( (lv_script_20_0= RULE_STRING ) )+ )? (otherlv_21= 'css' ( (lv_css_22_0= RULE_STRING ) )+ )? (otherlv_23= 'admin-script' ( (lv_script_24_0= RULE_STRING ) )+ )? (otherlv_25= 'admin-css' ( (lv_adminCSS_26_0= RULE_STRING ) )+ )? ( (lv_options_27_0= ruleOptions ) )? ( (lv_optionsPage_28_0= ruleOptionsPage ) )* ( (lv_adminPages_29_0= ruleAdminPage ) )* ( (lv_functions_30_0= ruleFunction ) )* )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:80:1: ( (otherlv_0= 'import' ( (lv_imports_1_0= RULE_STRING ) ) )* ( ( (lv_type_2_1= 'plugin' | lv_type_2_2= 'library' ) ) ) ( (lv_name_3_0= RULE_ID ) ) ( (lv_platform_4_0= rulePlatform ) )? otherlv_5= 'title' ( (lv_title_6_0= RULE_STRING ) ) (otherlv_7= 'version' ( (lv_version_8_0= RULE_STRING ) ) )? (otherlv_9= 'pluginURI' ( (lv_pluginURI_10_0= RULE_STRING ) ) )? (otherlv_11= 'description' ( (lv_description_12_0= RULE_STRING ) ) )? (otherlv_13= 'author' ( (lv_author_14_0= RULE_STRING ) ) )? (otherlv_15= 'skin' ( (lv_skin_16_0= RULE_STRING ) ) )? (otherlv_17= 'include' ( (lv_include_18_0= RULE_STRING ) )+ )? (otherlv_19= 'script' ( (lv_script_20_0= RULE_STRING ) )+ )? (otherlv_21= 'css' ( (lv_css_22_0= RULE_STRING ) )+ )? (otherlv_23= 'admin-script' ( (lv_script_24_0= RULE_STRING ) )+ )? (otherlv_25= 'admin-css' ( (lv_adminCSS_26_0= RULE_STRING ) )+ )? ( (lv_options_27_0= ruleOptions ) )? ( (lv_optionsPage_28_0= ruleOptionsPage ) )* ( (lv_adminPages_29_0= ruleAdminPage ) )* ( (lv_functions_30_0= ruleFunction ) )* )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:80:2: (otherlv_0= 'import' ( (lv_imports_1_0= RULE_STRING ) ) )* ( ( (lv_type_2_1= 'plugin' | lv_type_2_2= 'library' ) ) ) ( (lv_name_3_0= RULE_ID ) ) ( (lv_platform_4_0= rulePlatform ) )? otherlv_5= 'title' ( (lv_title_6_0= RULE_STRING ) ) (otherlv_7= 'version' ( (lv_version_8_0= RULE_STRING ) ) )? (otherlv_9= 'pluginURI' ( (lv_pluginURI_10_0= RULE_STRING ) ) )? (otherlv_11= 'description' ( (lv_description_12_0= RULE_STRING ) ) )? (otherlv_13= 'author' ( (lv_author_14_0= RULE_STRING ) ) )? (otherlv_15= 'skin' ( (lv_skin_16_0= RULE_STRING ) ) )? (otherlv_17= 'include' ( (lv_include_18_0= RULE_STRING ) )+ )? (otherlv_19= 'script' ( (lv_script_20_0= RULE_STRING ) )+ )? (otherlv_21= 'css' ( (lv_css_22_0= RULE_STRING ) )+ )? (otherlv_23= 'admin-script' ( (lv_script_24_0= RULE_STRING ) )+ )? (otherlv_25= 'admin-css' ( (lv_adminCSS_26_0= RULE_STRING ) )+ )? ( (lv_options_27_0= ruleOptions ) )? ( (lv_optionsPage_28_0= ruleOptionsPage ) )* ( (lv_adminPages_29_0= ruleAdminPage ) )* ( (lv_functions_30_0= ruleFunction ) )*
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:80:2: (otherlv_0= 'import' ( (lv_imports_1_0= RULE_STRING ) ) )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0==11) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:80:4: otherlv_0= 'import' ( (lv_imports_1_0= RULE_STRING ) )
            	    {
            	    otherlv_0=(Token)match(input,11,FOLLOW_11_in_rulePlugin123); 

            	        	newLeafNode(otherlv_0, grammarAccess.getPluginAccess().getImportKeyword_0_0());
            	        
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:84:1: ( (lv_imports_1_0= RULE_STRING ) )
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:85:1: (lv_imports_1_0= RULE_STRING )
            	    {
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:85:1: (lv_imports_1_0= RULE_STRING )
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:86:3: lv_imports_1_0= RULE_STRING
            	    {
            	    lv_imports_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rulePlugin140); 

            	    			newLeafNode(lv_imports_1_0, grammarAccess.getPluginAccess().getImportsSTRINGTerminalRuleCall_0_1_0()); 
            	    		

            	    	        if (current==null) {
            	    	            current = createModelElement(grammarAccess.getPluginRule());
            	    	        }
            	           		addWithLastConsumed(
            	           			current, 
            	           			"imports",
            	            		lv_imports_1_0, 
            	            		"STRING");
            	    	    

            	    }


            	    }


            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:102:4: ( ( (lv_type_2_1= 'plugin' | lv_type_2_2= 'library' ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:103:1: ( (lv_type_2_1= 'plugin' | lv_type_2_2= 'library' ) )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:103:1: ( (lv_type_2_1= 'plugin' | lv_type_2_2= 'library' ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:104:1: (lv_type_2_1= 'plugin' | lv_type_2_2= 'library' )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:104:1: (lv_type_2_1= 'plugin' | lv_type_2_2= 'library' )
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( (LA2_0==12) ) {
                alt2=1;
            }
            else if ( (LA2_0==13) ) {
                alt2=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }
            switch (alt2) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:105:3: lv_type_2_1= 'plugin'
                    {
                    lv_type_2_1=(Token)match(input,12,FOLLOW_12_in_rulePlugin167); 

                            newLeafNode(lv_type_2_1, grammarAccess.getPluginAccess().getTypePluginKeyword_1_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getPluginRule());
                    	        }
                           		setWithLastConsumed(current, "type", lv_type_2_1, null);
                    	    

                    }
                    break;
                case 2 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:117:8: lv_type_2_2= 'library'
                    {
                    lv_type_2_2=(Token)match(input,13,FOLLOW_13_in_rulePlugin196); 

                            newLeafNode(lv_type_2_2, grammarAccess.getPluginAccess().getTypeLibraryKeyword_1_0_1());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getPluginRule());
                    	        }
                           		setWithLastConsumed(current, "type", lv_type_2_2, null);
                    	    

                    }
                    break;

            }


            }


            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:132:2: ( (lv_name_3_0= RULE_ID ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:133:1: (lv_name_3_0= RULE_ID )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:133:1: (lv_name_3_0= RULE_ID )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:134:3: lv_name_3_0= RULE_ID
            {
            lv_name_3_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePlugin229); 

            			newLeafNode(lv_name_3_0, grammarAccess.getPluginAccess().getNameIDTerminalRuleCall_2_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getPluginRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_3_0, 
                    		"ID");
            	    

            }


            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:150:2: ( (lv_platform_4_0= rulePlatform ) )?
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( ((LA3_0>=25 && LA3_0<=26)) ) {
                alt3=1;
            }
            switch (alt3) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:151:1: (lv_platform_4_0= rulePlatform )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:151:1: (lv_platform_4_0= rulePlatform )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:152:3: lv_platform_4_0= rulePlatform
                    {
                     
                    	        newCompositeNode(grammarAccess.getPluginAccess().getPlatformPlatformParserRuleCall_3_0()); 
                    	    
                    pushFollow(FOLLOW_rulePlatform_in_rulePlugin255);
                    lv_platform_4_0=rulePlatform();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getPluginRule());
                    	        }
                           		set(
                           			current, 
                           			"platform",
                            		lv_platform_4_0, 
                            		"Platform");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            otherlv_5=(Token)match(input,14,FOLLOW_14_in_rulePlugin268); 

                	newLeafNode(otherlv_5, grammarAccess.getPluginAccess().getTitleKeyword_4());
                
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:172:1: ( (lv_title_6_0= RULE_STRING ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:173:1: (lv_title_6_0= RULE_STRING )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:173:1: (lv_title_6_0= RULE_STRING )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:174:3: lv_title_6_0= RULE_STRING
            {
            lv_title_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rulePlugin285); 

            			newLeafNode(lv_title_6_0, grammarAccess.getPluginAccess().getTitleSTRINGTerminalRuleCall_5_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getPluginRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"title",
                    		lv_title_6_0, 
                    		"STRING");
            	    

            }


            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:190:2: (otherlv_7= 'version' ( (lv_version_8_0= RULE_STRING ) ) )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==15) ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:190:4: otherlv_7= 'version' ( (lv_version_8_0= RULE_STRING ) )
                    {
                    otherlv_7=(Token)match(input,15,FOLLOW_15_in_rulePlugin303); 

                        	newLeafNode(otherlv_7, grammarAccess.getPluginAccess().getVersionKeyword_6_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:194:1: ( (lv_version_8_0= RULE_STRING ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:195:1: (lv_version_8_0= RULE_STRING )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:195:1: (lv_version_8_0= RULE_STRING )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:196:3: lv_version_8_0= RULE_STRING
                    {
                    lv_version_8_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rulePlugin320); 

                    			newLeafNode(lv_version_8_0, grammarAccess.getPluginAccess().getVersionSTRINGTerminalRuleCall_6_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getPluginRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"version",
                            		lv_version_8_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:212:4: (otherlv_9= 'pluginURI' ( (lv_pluginURI_10_0= RULE_STRING ) ) )?
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==16) ) {
                alt5=1;
            }
            switch (alt5) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:212:6: otherlv_9= 'pluginURI' ( (lv_pluginURI_10_0= RULE_STRING ) )
                    {
                    otherlv_9=(Token)match(input,16,FOLLOW_16_in_rulePlugin340); 

                        	newLeafNode(otherlv_9, grammarAccess.getPluginAccess().getPluginURIKeyword_7_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:216:1: ( (lv_pluginURI_10_0= RULE_STRING ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:217:1: (lv_pluginURI_10_0= RULE_STRING )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:217:1: (lv_pluginURI_10_0= RULE_STRING )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:218:3: lv_pluginURI_10_0= RULE_STRING
                    {
                    lv_pluginURI_10_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rulePlugin357); 

                    			newLeafNode(lv_pluginURI_10_0, grammarAccess.getPluginAccess().getPluginURISTRINGTerminalRuleCall_7_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getPluginRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"pluginURI",
                            		lv_pluginURI_10_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:234:4: (otherlv_11= 'description' ( (lv_description_12_0= RULE_STRING ) ) )?
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==17) ) {
                alt6=1;
            }
            switch (alt6) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:234:6: otherlv_11= 'description' ( (lv_description_12_0= RULE_STRING ) )
                    {
                    otherlv_11=(Token)match(input,17,FOLLOW_17_in_rulePlugin377); 

                        	newLeafNode(otherlv_11, grammarAccess.getPluginAccess().getDescriptionKeyword_8_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:238:1: ( (lv_description_12_0= RULE_STRING ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:239:1: (lv_description_12_0= RULE_STRING )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:239:1: (lv_description_12_0= RULE_STRING )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:240:3: lv_description_12_0= RULE_STRING
                    {
                    lv_description_12_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rulePlugin394); 

                    			newLeafNode(lv_description_12_0, grammarAccess.getPluginAccess().getDescriptionSTRINGTerminalRuleCall_8_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getPluginRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"description",
                            		lv_description_12_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:256:4: (otherlv_13= 'author' ( (lv_author_14_0= RULE_STRING ) ) )?
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==18) ) {
                alt7=1;
            }
            switch (alt7) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:256:6: otherlv_13= 'author' ( (lv_author_14_0= RULE_STRING ) )
                    {
                    otherlv_13=(Token)match(input,18,FOLLOW_18_in_rulePlugin414); 

                        	newLeafNode(otherlv_13, grammarAccess.getPluginAccess().getAuthorKeyword_9_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:260:1: ( (lv_author_14_0= RULE_STRING ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:261:1: (lv_author_14_0= RULE_STRING )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:261:1: (lv_author_14_0= RULE_STRING )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:262:3: lv_author_14_0= RULE_STRING
                    {
                    lv_author_14_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rulePlugin431); 

                    			newLeafNode(lv_author_14_0, grammarAccess.getPluginAccess().getAuthorSTRINGTerminalRuleCall_9_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getPluginRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"author",
                            		lv_author_14_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:278:4: (otherlv_15= 'skin' ( (lv_skin_16_0= RULE_STRING ) ) )?
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==19) ) {
                alt8=1;
            }
            switch (alt8) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:278:6: otherlv_15= 'skin' ( (lv_skin_16_0= RULE_STRING ) )
                    {
                    otherlv_15=(Token)match(input,19,FOLLOW_19_in_rulePlugin451); 

                        	newLeafNode(otherlv_15, grammarAccess.getPluginAccess().getSkinKeyword_10_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:282:1: ( (lv_skin_16_0= RULE_STRING ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:283:1: (lv_skin_16_0= RULE_STRING )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:283:1: (lv_skin_16_0= RULE_STRING )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:284:3: lv_skin_16_0= RULE_STRING
                    {
                    lv_skin_16_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rulePlugin468); 

                    			newLeafNode(lv_skin_16_0, grammarAccess.getPluginAccess().getSkinSTRINGTerminalRuleCall_10_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getPluginRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"skin",
                            		lv_skin_16_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:300:4: (otherlv_17= 'include' ( (lv_include_18_0= RULE_STRING ) )+ )?
            int alt10=2;
            int LA10_0 = input.LA(1);

            if ( (LA10_0==20) ) {
                alt10=1;
            }
            switch (alt10) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:300:6: otherlv_17= 'include' ( (lv_include_18_0= RULE_STRING ) )+
                    {
                    otherlv_17=(Token)match(input,20,FOLLOW_20_in_rulePlugin488); 

                        	newLeafNode(otherlv_17, grammarAccess.getPluginAccess().getIncludeKeyword_11_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:304:1: ( (lv_include_18_0= RULE_STRING ) )+
                    int cnt9=0;
                    loop9:
                    do {
                        int alt9=2;
                        int LA9_0 = input.LA(1);

                        if ( (LA9_0==RULE_STRING) ) {
                            alt9=1;
                        }


                        switch (alt9) {
                    	case 1 :
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:305:1: (lv_include_18_0= RULE_STRING )
                    	    {
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:305:1: (lv_include_18_0= RULE_STRING )
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:306:3: lv_include_18_0= RULE_STRING
                    	    {
                    	    lv_include_18_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rulePlugin505); 

                    	    			newLeafNode(lv_include_18_0, grammarAccess.getPluginAccess().getIncludeSTRINGTerminalRuleCall_11_1_0()); 
                    	    		

                    	    	        if (current==null) {
                    	    	            current = createModelElement(grammarAccess.getPluginRule());
                    	    	        }
                    	           		addWithLastConsumed(
                    	           			current, 
                    	           			"include",
                    	            		lv_include_18_0, 
                    	            		"STRING");
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt9 >= 1 ) break loop9;
                                EarlyExitException eee =
                                    new EarlyExitException(9, input);
                                throw eee;
                        }
                        cnt9++;
                    } while (true);


                    }
                    break;

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:322:5: (otherlv_19= 'script' ( (lv_script_20_0= RULE_STRING ) )+ )?
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( (LA12_0==21) ) {
                alt12=1;
            }
            switch (alt12) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:322:7: otherlv_19= 'script' ( (lv_script_20_0= RULE_STRING ) )+
                    {
                    otherlv_19=(Token)match(input,21,FOLLOW_21_in_rulePlugin526); 

                        	newLeafNode(otherlv_19, grammarAccess.getPluginAccess().getScriptKeyword_12_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:326:1: ( (lv_script_20_0= RULE_STRING ) )+
                    int cnt11=0;
                    loop11:
                    do {
                        int alt11=2;
                        int LA11_0 = input.LA(1);

                        if ( (LA11_0==RULE_STRING) ) {
                            alt11=1;
                        }


                        switch (alt11) {
                    	case 1 :
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:327:1: (lv_script_20_0= RULE_STRING )
                    	    {
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:327:1: (lv_script_20_0= RULE_STRING )
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:328:3: lv_script_20_0= RULE_STRING
                    	    {
                    	    lv_script_20_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rulePlugin543); 

                    	    			newLeafNode(lv_script_20_0, grammarAccess.getPluginAccess().getScriptSTRINGTerminalRuleCall_12_1_0()); 
                    	    		

                    	    	        if (current==null) {
                    	    	            current = createModelElement(grammarAccess.getPluginRule());
                    	    	        }
                    	           		addWithLastConsumed(
                    	           			current, 
                    	           			"script",
                    	            		lv_script_20_0, 
                    	            		"STRING");
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt11 >= 1 ) break loop11;
                                EarlyExitException eee =
                                    new EarlyExitException(11, input);
                                throw eee;
                        }
                        cnt11++;
                    } while (true);


                    }
                    break;

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:344:5: (otherlv_21= 'css' ( (lv_css_22_0= RULE_STRING ) )+ )?
            int alt14=2;
            int LA14_0 = input.LA(1);

            if ( (LA14_0==22) ) {
                alt14=1;
            }
            switch (alt14) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:344:7: otherlv_21= 'css' ( (lv_css_22_0= RULE_STRING ) )+
                    {
                    otherlv_21=(Token)match(input,22,FOLLOW_22_in_rulePlugin564); 

                        	newLeafNode(otherlv_21, grammarAccess.getPluginAccess().getCssKeyword_13_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:348:1: ( (lv_css_22_0= RULE_STRING ) )+
                    int cnt13=0;
                    loop13:
                    do {
                        int alt13=2;
                        int LA13_0 = input.LA(1);

                        if ( (LA13_0==RULE_STRING) ) {
                            alt13=1;
                        }


                        switch (alt13) {
                    	case 1 :
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:349:1: (lv_css_22_0= RULE_STRING )
                    	    {
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:349:1: (lv_css_22_0= RULE_STRING )
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:350:3: lv_css_22_0= RULE_STRING
                    	    {
                    	    lv_css_22_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rulePlugin581); 

                    	    			newLeafNode(lv_css_22_0, grammarAccess.getPluginAccess().getCssSTRINGTerminalRuleCall_13_1_0()); 
                    	    		

                    	    	        if (current==null) {
                    	    	            current = createModelElement(grammarAccess.getPluginRule());
                    	    	        }
                    	           		addWithLastConsumed(
                    	           			current, 
                    	           			"css",
                    	            		lv_css_22_0, 
                    	            		"STRING");
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt13 >= 1 ) break loop13;
                                EarlyExitException eee =
                                    new EarlyExitException(13, input);
                                throw eee;
                        }
                        cnt13++;
                    } while (true);


                    }
                    break;

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:366:5: (otherlv_23= 'admin-script' ( (lv_script_24_0= RULE_STRING ) )+ )?
            int alt16=2;
            int LA16_0 = input.LA(1);

            if ( (LA16_0==23) ) {
                alt16=1;
            }
            switch (alt16) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:366:7: otherlv_23= 'admin-script' ( (lv_script_24_0= RULE_STRING ) )+
                    {
                    otherlv_23=(Token)match(input,23,FOLLOW_23_in_rulePlugin602); 

                        	newLeafNode(otherlv_23, grammarAccess.getPluginAccess().getAdminScriptKeyword_14_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:370:1: ( (lv_script_24_0= RULE_STRING ) )+
                    int cnt15=0;
                    loop15:
                    do {
                        int alt15=2;
                        int LA15_0 = input.LA(1);

                        if ( (LA15_0==RULE_STRING) ) {
                            alt15=1;
                        }


                        switch (alt15) {
                    	case 1 :
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:371:1: (lv_script_24_0= RULE_STRING )
                    	    {
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:371:1: (lv_script_24_0= RULE_STRING )
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:372:3: lv_script_24_0= RULE_STRING
                    	    {
                    	    lv_script_24_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rulePlugin619); 

                    	    			newLeafNode(lv_script_24_0, grammarAccess.getPluginAccess().getScriptSTRINGTerminalRuleCall_14_1_0()); 
                    	    		

                    	    	        if (current==null) {
                    	    	            current = createModelElement(grammarAccess.getPluginRule());
                    	    	        }
                    	           		addWithLastConsumed(
                    	           			current, 
                    	           			"script",
                    	            		lv_script_24_0, 
                    	            		"STRING");
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt15 >= 1 ) break loop15;
                                EarlyExitException eee =
                                    new EarlyExitException(15, input);
                                throw eee;
                        }
                        cnt15++;
                    } while (true);


                    }
                    break;

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:388:5: (otherlv_25= 'admin-css' ( (lv_adminCSS_26_0= RULE_STRING ) )+ )?
            int alt18=2;
            int LA18_0 = input.LA(1);

            if ( (LA18_0==24) ) {
                alt18=1;
            }
            switch (alt18) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:388:7: otherlv_25= 'admin-css' ( (lv_adminCSS_26_0= RULE_STRING ) )+
                    {
                    otherlv_25=(Token)match(input,24,FOLLOW_24_in_rulePlugin640); 

                        	newLeafNode(otherlv_25, grammarAccess.getPluginAccess().getAdminCssKeyword_15_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:392:1: ( (lv_adminCSS_26_0= RULE_STRING ) )+
                    int cnt17=0;
                    loop17:
                    do {
                        int alt17=2;
                        int LA17_0 = input.LA(1);

                        if ( (LA17_0==RULE_STRING) ) {
                            alt17=1;
                        }


                        switch (alt17) {
                    	case 1 :
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:393:1: (lv_adminCSS_26_0= RULE_STRING )
                    	    {
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:393:1: (lv_adminCSS_26_0= RULE_STRING )
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:394:3: lv_adminCSS_26_0= RULE_STRING
                    	    {
                    	    lv_adminCSS_26_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rulePlugin657); 

                    	    			newLeafNode(lv_adminCSS_26_0, grammarAccess.getPluginAccess().getAdminCSSSTRINGTerminalRuleCall_15_1_0()); 
                    	    		

                    	    	        if (current==null) {
                    	    	            current = createModelElement(grammarAccess.getPluginRule());
                    	    	        }
                    	           		addWithLastConsumed(
                    	           			current, 
                    	           			"adminCSS",
                    	            		lv_adminCSS_26_0, 
                    	            		"STRING");
                    	    	    

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt17 >= 1 ) break loop17;
                                EarlyExitException eee =
                                    new EarlyExitException(17, input);
                                throw eee;
                        }
                        cnt17++;
                    } while (true);


                    }
                    break;

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:410:5: ( (lv_options_27_0= ruleOptions ) )?
            int alt19=2;
            int LA19_0 = input.LA(1);

            if ( (LA19_0==30) ) {
                alt19=1;
            }
            switch (alt19) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:411:1: (lv_options_27_0= ruleOptions )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:411:1: (lv_options_27_0= ruleOptions )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:412:3: lv_options_27_0= ruleOptions
                    {
                     
                    	        newCompositeNode(grammarAccess.getPluginAccess().getOptionsOptionsParserRuleCall_16_0()); 
                    	    
                    pushFollow(FOLLOW_ruleOptions_in_rulePlugin686);
                    lv_options_27_0=ruleOptions();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getPluginRule());
                    	        }
                           		set(
                           			current, 
                           			"options",
                            		lv_options_27_0, 
                            		"Options");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:428:3: ( (lv_optionsPage_28_0= ruleOptionsPage ) )*
            loop20:
            do {
                int alt20=2;
                int LA20_0 = input.LA(1);

                if ( (LA20_0==31) ) {
                    alt20=1;
                }


                switch (alt20) {
            	case 1 :
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:429:1: (lv_optionsPage_28_0= ruleOptionsPage )
            	    {
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:429:1: (lv_optionsPage_28_0= ruleOptionsPage )
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:430:3: lv_optionsPage_28_0= ruleOptionsPage
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getPluginAccess().getOptionsPageOptionsPageParserRuleCall_17_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleOptionsPage_in_rulePlugin708);
            	    lv_optionsPage_28_0=ruleOptionsPage();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getPluginRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"optionsPage",
            	            		lv_optionsPage_28_0, 
            	            		"OptionsPage");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop20;
                }
            } while (true);

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:446:3: ( (lv_adminPages_29_0= ruleAdminPage ) )*
            loop21:
            do {
                int alt21=2;
                int LA21_0 = input.LA(1);

                if ( (LA21_0==27) ) {
                    alt21=1;
                }


                switch (alt21) {
            	case 1 :
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:447:1: (lv_adminPages_29_0= ruleAdminPage )
            	    {
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:447:1: (lv_adminPages_29_0= ruleAdminPage )
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:448:3: lv_adminPages_29_0= ruleAdminPage
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getPluginAccess().getAdminPagesAdminPageParserRuleCall_18_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleAdminPage_in_rulePlugin730);
            	    lv_adminPages_29_0=ruleAdminPage();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getPluginRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"adminPages",
            	            		lv_adminPages_29_0, 
            	            		"AdminPage");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop21;
                }
            } while (true);

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:464:3: ( (lv_functions_30_0= ruleFunction ) )*
            loop22:
            do {
                int alt22=2;
                int LA22_0 = input.LA(1);

                if ( ((LA22_0>=55 && LA22_0<=58)) ) {
                    alt22=1;
                }


                switch (alt22) {
            	case 1 :
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:465:1: (lv_functions_30_0= ruleFunction )
            	    {
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:465:1: (lv_functions_30_0= ruleFunction )
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:466:3: lv_functions_30_0= ruleFunction
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getPluginAccess().getFunctionsFunctionParserRuleCall_19_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleFunction_in_rulePlugin752);
            	    lv_functions_30_0=ruleFunction();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getPluginRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"functions",
            	            		lv_functions_30_0, 
            	            		"Function");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop22;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "rulePlugin"


    // $ANTLR start "entryRulePlatform"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:490:1: entryRulePlatform returns [String current=null] : iv_rulePlatform= rulePlatform EOF ;
    public final String entryRulePlatform() throws RecognitionException {
        String current = null;

        AntlrDatatypeRuleToken iv_rulePlatform = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:491:2: (iv_rulePlatform= rulePlatform EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:492:2: iv_rulePlatform= rulePlatform EOF
            {
             newCompositeNode(grammarAccess.getPlatformRule()); 
            pushFollow(FOLLOW_rulePlatform_in_entryRulePlatform790);
            iv_rulePlatform=rulePlatform();

            state._fsp--;

             current =iv_rulePlatform.getText(); 
            match(input,EOF,FOLLOW_EOF_in_entryRulePlatform801); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRulePlatform"


    // $ANTLR start "rulePlatform"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:499:1: rulePlatform returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= 'wp-plugin' | kw= 'wp-theme' ) ;
    public final AntlrDatatypeRuleToken rulePlatform() throws RecognitionException {
        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();

        Token kw=null;

         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:502:28: ( (kw= 'wp-plugin' | kw= 'wp-theme' ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:503:1: (kw= 'wp-plugin' | kw= 'wp-theme' )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:503:1: (kw= 'wp-plugin' | kw= 'wp-theme' )
            int alt23=2;
            int LA23_0 = input.LA(1);

            if ( (LA23_0==25) ) {
                alt23=1;
            }
            else if ( (LA23_0==26) ) {
                alt23=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 23, 0, input);

                throw nvae;
            }
            switch (alt23) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:504:2: kw= 'wp-plugin'
                    {
                    kw=(Token)match(input,25,FOLLOW_25_in_rulePlatform839); 

                            current.merge(kw);
                            newLeafNode(kw, grammarAccess.getPlatformAccess().getWpPluginKeyword_0()); 
                        

                    }
                    break;
                case 2 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:511:2: kw= 'wp-theme'
                    {
                    kw=(Token)match(input,26,FOLLOW_26_in_rulePlatform858); 

                            current.merge(kw);
                            newLeafNode(kw, grammarAccess.getPlatformAccess().getWpThemeKeyword_1()); 
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "rulePlatform"


    // $ANTLR start "entryRuleAdminPage"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:524:1: entryRuleAdminPage returns [EObject current=null] : iv_ruleAdminPage= ruleAdminPage EOF ;
    public final EObject entryRuleAdminPage() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleAdminPage = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:525:2: (iv_ruleAdminPage= ruleAdminPage EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:526:2: iv_ruleAdminPage= ruleAdminPage EOF
            {
             newCompositeNode(grammarAccess.getAdminPageRule()); 
            pushFollow(FOLLOW_ruleAdminPage_in_entryRuleAdminPage898);
            iv_ruleAdminPage=ruleAdminPage();

            state._fsp--;

             current =iv_ruleAdminPage; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAdminPage908); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleAdminPage"


    // $ANTLR start "ruleAdminPage"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:533:1: ruleAdminPage returns [EObject current=null] : (otherlv_0= 'page' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'title' ( (lv_title_4_0= RULE_STRING ) ) (otherlv_5= 'description' ( (lv_description_6_0= RULE_STRING ) ) )? otherlv_7= '}' ) ;
    public final EObject ruleAdminPage() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token lv_title_4_0=null;
        Token otherlv_5=null;
        Token lv_description_6_0=null;
        Token otherlv_7=null;

         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:536:28: ( (otherlv_0= 'page' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'title' ( (lv_title_4_0= RULE_STRING ) ) (otherlv_5= 'description' ( (lv_description_6_0= RULE_STRING ) ) )? otherlv_7= '}' ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:537:1: (otherlv_0= 'page' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'title' ( (lv_title_4_0= RULE_STRING ) ) (otherlv_5= 'description' ( (lv_description_6_0= RULE_STRING ) ) )? otherlv_7= '}' )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:537:1: (otherlv_0= 'page' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'title' ( (lv_title_4_0= RULE_STRING ) ) (otherlv_5= 'description' ( (lv_description_6_0= RULE_STRING ) ) )? otherlv_7= '}' )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:537:3: otherlv_0= 'page' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'title' ( (lv_title_4_0= RULE_STRING ) ) (otherlv_5= 'description' ( (lv_description_6_0= RULE_STRING ) ) )? otherlv_7= '}'
            {
            otherlv_0=(Token)match(input,27,FOLLOW_27_in_ruleAdminPage945); 

                	newLeafNode(otherlv_0, grammarAccess.getAdminPageAccess().getPageKeyword_0());
                
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:541:1: ( (lv_name_1_0= RULE_ID ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:542:1: (lv_name_1_0= RULE_ID )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:542:1: (lv_name_1_0= RULE_ID )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:543:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAdminPage962); 

            			newLeafNode(lv_name_1_0, grammarAccess.getAdminPageAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getAdminPageRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            otherlv_2=(Token)match(input,28,FOLLOW_28_in_ruleAdminPage979); 

                	newLeafNode(otherlv_2, grammarAccess.getAdminPageAccess().getLeftCurlyBracketKeyword_2());
                
            otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleAdminPage991); 

                	newLeafNode(otherlv_3, grammarAccess.getAdminPageAccess().getTitleKeyword_3());
                
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:567:1: ( (lv_title_4_0= RULE_STRING ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:568:1: (lv_title_4_0= RULE_STRING )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:568:1: (lv_title_4_0= RULE_STRING )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:569:3: lv_title_4_0= RULE_STRING
            {
            lv_title_4_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleAdminPage1008); 

            			newLeafNode(lv_title_4_0, grammarAccess.getAdminPageAccess().getTitleSTRINGTerminalRuleCall_4_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getAdminPageRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"title",
                    		lv_title_4_0, 
                    		"STRING");
            	    

            }


            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:585:2: (otherlv_5= 'description' ( (lv_description_6_0= RULE_STRING ) ) )?
            int alt24=2;
            int LA24_0 = input.LA(1);

            if ( (LA24_0==17) ) {
                alt24=1;
            }
            switch (alt24) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:585:4: otherlv_5= 'description' ( (lv_description_6_0= RULE_STRING ) )
                    {
                    otherlv_5=(Token)match(input,17,FOLLOW_17_in_ruleAdminPage1026); 

                        	newLeafNode(otherlv_5, grammarAccess.getAdminPageAccess().getDescriptionKeyword_5_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:589:1: ( (lv_description_6_0= RULE_STRING ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:590:1: (lv_description_6_0= RULE_STRING )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:590:1: (lv_description_6_0= RULE_STRING )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:591:3: lv_description_6_0= RULE_STRING
                    {
                    lv_description_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleAdminPage1043); 

                    			newLeafNode(lv_description_6_0, grammarAccess.getAdminPageAccess().getDescriptionSTRINGTerminalRuleCall_5_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getAdminPageRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"description",
                            		lv_description_6_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }

            otherlv_7=(Token)match(input,29,FOLLOW_29_in_ruleAdminPage1062); 

                	newLeafNode(otherlv_7, grammarAccess.getAdminPageAccess().getRightCurlyBracketKeyword_6());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleAdminPage"


    // $ANTLR start "entryRuleOptions"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:619:1: entryRuleOptions returns [EObject current=null] : iv_ruleOptions= ruleOptions EOF ;
    public final EObject entryRuleOptions() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleOptions = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:620:2: (iv_ruleOptions= ruleOptions EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:621:2: iv_ruleOptions= ruleOptions EOF
            {
             newCompositeNode(grammarAccess.getOptionsRule()); 
            pushFollow(FOLLOW_ruleOptions_in_entryRuleOptions1098);
            iv_ruleOptions=ruleOptions();

            state._fsp--;

             current =iv_ruleOptions; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleOptions1108); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleOptions"


    // $ANTLR start "ruleOptions"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:628:1: ruleOptions returns [EObject current=null] : ( () otherlv_1= 'options' otherlv_2= '{' ( (lv_options_3_0= ruleOption ) )* otherlv_4= '}' ) ;
    public final EObject ruleOptions() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_2=null;
        Token otherlv_4=null;
        EObject lv_options_3_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:631:28: ( ( () otherlv_1= 'options' otherlv_2= '{' ( (lv_options_3_0= ruleOption ) )* otherlv_4= '}' ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:632:1: ( () otherlv_1= 'options' otherlv_2= '{' ( (lv_options_3_0= ruleOption ) )* otherlv_4= '}' )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:632:1: ( () otherlv_1= 'options' otherlv_2= '{' ( (lv_options_3_0= ruleOption ) )* otherlv_4= '}' )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:632:2: () otherlv_1= 'options' otherlv_2= '{' ( (lv_options_3_0= ruleOption ) )* otherlv_4= '}'
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:632:2: ()
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:633:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getOptionsAccess().getOptionsAction_0(),
                        current);
                

            }

            otherlv_1=(Token)match(input,30,FOLLOW_30_in_ruleOptions1154); 

                	newLeafNode(otherlv_1, grammarAccess.getOptionsAccess().getOptionsKeyword_1());
                
            otherlv_2=(Token)match(input,28,FOLLOW_28_in_ruleOptions1166); 

                	newLeafNode(otherlv_2, grammarAccess.getOptionsAccess().getLeftCurlyBracketKeyword_2());
                
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:646:1: ( (lv_options_3_0= ruleOption ) )*
            loop25:
            do {
                int alt25=2;
                int LA25_0 = input.LA(1);

                if ( (LA25_0==RULE_ID) ) {
                    alt25=1;
                }


                switch (alt25) {
            	case 1 :
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:647:1: (lv_options_3_0= ruleOption )
            	    {
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:647:1: (lv_options_3_0= ruleOption )
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:648:3: lv_options_3_0= ruleOption
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getOptionsAccess().getOptionsOptionParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleOption_in_ruleOptions1187);
            	    lv_options_3_0=ruleOption();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getOptionsRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"options",
            	            		lv_options_3_0, 
            	            		"Option");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop25;
                }
            } while (true);

            otherlv_4=(Token)match(input,29,FOLLOW_29_in_ruleOptions1200); 

                	newLeafNode(otherlv_4, grammarAccess.getOptionsAccess().getRightCurlyBracketKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleOptions"


    // $ANTLR start "entryRuleOptionsPage"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:676:1: entryRuleOptionsPage returns [EObject current=null] : iv_ruleOptionsPage= ruleOptionsPage EOF ;
    public final EObject entryRuleOptionsPage() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleOptionsPage = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:677:2: (iv_ruleOptionsPage= ruleOptionsPage EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:678:2: iv_ruleOptionsPage= ruleOptionsPage EOF
            {
             newCompositeNode(grammarAccess.getOptionsPageRule()); 
            pushFollow(FOLLOW_ruleOptionsPage_in_entryRuleOptionsPage1236);
            iv_ruleOptionsPage=ruleOptionsPage();

            state._fsp--;

             current =iv_ruleOptionsPage; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleOptionsPage1246); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleOptionsPage"


    // $ANTLR start "ruleOptionsPage"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:685:1: ruleOptionsPage returns [EObject current=null] : (otherlv_0= 'options-page' ( (lv_name_1_0= RULE_ID ) ) ( (lv_site_2_0= 'site' ) )? otherlv_3= '{' otherlv_4= 'title' ( (lv_title_5_0= RULE_STRING ) ) ( (lv_header_6_0= RULE_STRING ) )? ( ( (otherlv_7= RULE_ID ) )+ ( (lv_footer_8_0= RULE_STRING ) )? )? otherlv_9= '}' ) ;
    public final EObject ruleOptionsPage() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token lv_site_2_0=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token lv_title_5_0=null;
        Token lv_header_6_0=null;
        Token otherlv_7=null;
        Token lv_footer_8_0=null;
        Token otherlv_9=null;

         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:688:28: ( (otherlv_0= 'options-page' ( (lv_name_1_0= RULE_ID ) ) ( (lv_site_2_0= 'site' ) )? otherlv_3= '{' otherlv_4= 'title' ( (lv_title_5_0= RULE_STRING ) ) ( (lv_header_6_0= RULE_STRING ) )? ( ( (otherlv_7= RULE_ID ) )+ ( (lv_footer_8_0= RULE_STRING ) )? )? otherlv_9= '}' ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:689:1: (otherlv_0= 'options-page' ( (lv_name_1_0= RULE_ID ) ) ( (lv_site_2_0= 'site' ) )? otherlv_3= '{' otherlv_4= 'title' ( (lv_title_5_0= RULE_STRING ) ) ( (lv_header_6_0= RULE_STRING ) )? ( ( (otherlv_7= RULE_ID ) )+ ( (lv_footer_8_0= RULE_STRING ) )? )? otherlv_9= '}' )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:689:1: (otherlv_0= 'options-page' ( (lv_name_1_0= RULE_ID ) ) ( (lv_site_2_0= 'site' ) )? otherlv_3= '{' otherlv_4= 'title' ( (lv_title_5_0= RULE_STRING ) ) ( (lv_header_6_0= RULE_STRING ) )? ( ( (otherlv_7= RULE_ID ) )+ ( (lv_footer_8_0= RULE_STRING ) )? )? otherlv_9= '}' )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:689:3: otherlv_0= 'options-page' ( (lv_name_1_0= RULE_ID ) ) ( (lv_site_2_0= 'site' ) )? otherlv_3= '{' otherlv_4= 'title' ( (lv_title_5_0= RULE_STRING ) ) ( (lv_header_6_0= RULE_STRING ) )? ( ( (otherlv_7= RULE_ID ) )+ ( (lv_footer_8_0= RULE_STRING ) )? )? otherlv_9= '}'
            {
            otherlv_0=(Token)match(input,31,FOLLOW_31_in_ruleOptionsPage1283); 

                	newLeafNode(otherlv_0, grammarAccess.getOptionsPageAccess().getOptionsPageKeyword_0());
                
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:693:1: ( (lv_name_1_0= RULE_ID ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:694:1: (lv_name_1_0= RULE_ID )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:694:1: (lv_name_1_0= RULE_ID )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:695:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleOptionsPage1300); 

            			newLeafNode(lv_name_1_0, grammarAccess.getOptionsPageAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getOptionsPageRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:711:2: ( (lv_site_2_0= 'site' ) )?
            int alt26=2;
            int LA26_0 = input.LA(1);

            if ( (LA26_0==32) ) {
                alt26=1;
            }
            switch (alt26) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:712:1: (lv_site_2_0= 'site' )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:712:1: (lv_site_2_0= 'site' )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:713:3: lv_site_2_0= 'site'
                    {
                    lv_site_2_0=(Token)match(input,32,FOLLOW_32_in_ruleOptionsPage1323); 

                            newLeafNode(lv_site_2_0, grammarAccess.getOptionsPageAccess().getSiteSiteKeyword_2_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getOptionsPageRule());
                    	        }
                           		setWithLastConsumed(current, "site", true, "site");
                    	    

                    }


                    }
                    break;

            }

            otherlv_3=(Token)match(input,28,FOLLOW_28_in_ruleOptionsPage1349); 

                	newLeafNode(otherlv_3, grammarAccess.getOptionsPageAccess().getLeftCurlyBracketKeyword_3());
                
            otherlv_4=(Token)match(input,14,FOLLOW_14_in_ruleOptionsPage1361); 

                	newLeafNode(otherlv_4, grammarAccess.getOptionsPageAccess().getTitleKeyword_4());
                
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:734:1: ( (lv_title_5_0= RULE_STRING ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:735:1: (lv_title_5_0= RULE_STRING )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:735:1: (lv_title_5_0= RULE_STRING )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:736:3: lv_title_5_0= RULE_STRING
            {
            lv_title_5_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleOptionsPage1378); 

            			newLeafNode(lv_title_5_0, grammarAccess.getOptionsPageAccess().getTitleSTRINGTerminalRuleCall_5_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getOptionsPageRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"title",
                    		lv_title_5_0, 
                    		"STRING");
            	    

            }


            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:752:2: ( (lv_header_6_0= RULE_STRING ) )?
            int alt27=2;
            int LA27_0 = input.LA(1);

            if ( (LA27_0==RULE_STRING) ) {
                alt27=1;
            }
            switch (alt27) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:753:1: (lv_header_6_0= RULE_STRING )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:753:1: (lv_header_6_0= RULE_STRING )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:754:3: lv_header_6_0= RULE_STRING
                    {
                    lv_header_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleOptionsPage1400); 

                    			newLeafNode(lv_header_6_0, grammarAccess.getOptionsPageAccess().getHeaderSTRINGTerminalRuleCall_6_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getOptionsPageRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"header",
                            		lv_header_6_0, 
                            		"STRING");
                    	    

                    }


                    }
                    break;

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:770:3: ( ( (otherlv_7= RULE_ID ) )+ ( (lv_footer_8_0= RULE_STRING ) )? )?
            int alt30=2;
            int LA30_0 = input.LA(1);

            if ( (LA30_0==RULE_ID) ) {
                alt30=1;
            }
            switch (alt30) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:770:4: ( (otherlv_7= RULE_ID ) )+ ( (lv_footer_8_0= RULE_STRING ) )?
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:770:4: ( (otherlv_7= RULE_ID ) )+
                    int cnt28=0;
                    loop28:
                    do {
                        int alt28=2;
                        int LA28_0 = input.LA(1);

                        if ( (LA28_0==RULE_ID) ) {
                            alt28=1;
                        }


                        switch (alt28) {
                    	case 1 :
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:771:1: (otherlv_7= RULE_ID )
                    	    {
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:771:1: (otherlv_7= RULE_ID )
                    	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:772:3: otherlv_7= RULE_ID
                    	    {

                    	    			if (current==null) {
                    	    	            current = createModelElement(grammarAccess.getOptionsPageRule());
                    	    	        }
                    	            
                    	    otherlv_7=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleOptionsPage1427); 

                    	    		newLeafNode(otherlv_7, grammarAccess.getOptionsPageAccess().getOptionsOptionCrossReference_7_0_0()); 
                    	    	

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt28 >= 1 ) break loop28;
                                EarlyExitException eee =
                                    new EarlyExitException(28, input);
                                throw eee;
                        }
                        cnt28++;
                    } while (true);

                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:783:3: ( (lv_footer_8_0= RULE_STRING ) )?
                    int alt29=2;
                    int LA29_0 = input.LA(1);

                    if ( (LA29_0==RULE_STRING) ) {
                        alt29=1;
                    }
                    switch (alt29) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:784:1: (lv_footer_8_0= RULE_STRING )
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:784:1: (lv_footer_8_0= RULE_STRING )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:785:3: lv_footer_8_0= RULE_STRING
                            {
                            lv_footer_8_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleOptionsPage1445); 

                            			newLeafNode(lv_footer_8_0, grammarAccess.getOptionsPageAccess().getFooterSTRINGTerminalRuleCall_7_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getOptionsPageRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"footer",
                                    		lv_footer_8_0, 
                                    		"STRING");
                            	    

                            }


                            }
                            break;

                    }


                    }
                    break;

            }

            otherlv_9=(Token)match(input,29,FOLLOW_29_in_ruleOptionsPage1465); 

                	newLeafNode(otherlv_9, grammarAccess.getOptionsPageAccess().getRightCurlyBracketKeyword_8());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleOptionsPage"


    // $ANTLR start "entryRuleOptionType"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:813:1: entryRuleOptionType returns [EObject current=null] : iv_ruleOptionType= ruleOptionType EOF ;
    public final EObject entryRuleOptionType() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleOptionType = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:814:2: (iv_ruleOptionType= ruleOptionType EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:815:2: iv_ruleOptionType= ruleOptionType EOF
            {
             newCompositeNode(grammarAccess.getOptionTypeRule()); 
            pushFollow(FOLLOW_ruleOptionType_in_entryRuleOptionType1501);
            iv_ruleOptionType=ruleOptionType();

            state._fsp--;

             current =iv_ruleOptionType; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleOptionType1511); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleOptionType"


    // $ANTLR start "ruleOptionType"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:822:1: ruleOptionType returns [EObject current=null] : ( (otherlv_0= 'string' this_StringOption_1= ruleStringOption ) | (otherlv_2= 'text' this_TextOption_3= ruleTextOption ) | (otherlv_4= 'url' this_URLOption_5= ruleURLOption ) | (otherlv_6= 'integer' this_IntegerOption_7= ruleIntegerOption ) | (otherlv_8= 'float' this_FloatOption_9= ruleFloatOption ) | (otherlv_10= 'range' this_RangeOption_11= ruleRangeOption ) | (otherlv_12= 'select' this_SelectOption_13= ruleSelectOption ) | (otherlv_14= 'choice' this_ChoiceOption_15= ruleChoiceOption ) | (otherlv_16= 'boolean' this_BooleanOption_17= ruleBooleanOption ) | (otherlv_18= 'date' this_DateOption_19= ruleDateOption ) | ( (otherlv_20= 'colour' | otherlv_21= 'color' ) this_ColourOption_22= ruleColourOption ) | (otherlv_23= 'custom' this_CustomOption_24= ruleCustomOption ) ) ;
    public final EObject ruleOptionType() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_2=null;
        Token otherlv_4=null;
        Token otherlv_6=null;
        Token otherlv_8=null;
        Token otherlv_10=null;
        Token otherlv_12=null;
        Token otherlv_14=null;
        Token otherlv_16=null;
        Token otherlv_18=null;
        Token otherlv_20=null;
        Token otherlv_21=null;
        Token otherlv_23=null;
        EObject this_StringOption_1 = null;

        EObject this_TextOption_3 = null;

        EObject this_URLOption_5 = null;

        EObject this_IntegerOption_7 = null;

        EObject this_FloatOption_9 = null;

        EObject this_RangeOption_11 = null;

        EObject this_SelectOption_13 = null;

        EObject this_ChoiceOption_15 = null;

        EObject this_BooleanOption_17 = null;

        EObject this_DateOption_19 = null;

        EObject this_ColourOption_22 = null;

        EObject this_CustomOption_24 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:825:28: ( ( (otherlv_0= 'string' this_StringOption_1= ruleStringOption ) | (otherlv_2= 'text' this_TextOption_3= ruleTextOption ) | (otherlv_4= 'url' this_URLOption_5= ruleURLOption ) | (otherlv_6= 'integer' this_IntegerOption_7= ruleIntegerOption ) | (otherlv_8= 'float' this_FloatOption_9= ruleFloatOption ) | (otherlv_10= 'range' this_RangeOption_11= ruleRangeOption ) | (otherlv_12= 'select' this_SelectOption_13= ruleSelectOption ) | (otherlv_14= 'choice' this_ChoiceOption_15= ruleChoiceOption ) | (otherlv_16= 'boolean' this_BooleanOption_17= ruleBooleanOption ) | (otherlv_18= 'date' this_DateOption_19= ruleDateOption ) | ( (otherlv_20= 'colour' | otherlv_21= 'color' ) this_ColourOption_22= ruleColourOption ) | (otherlv_23= 'custom' this_CustomOption_24= ruleCustomOption ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:826:1: ( (otherlv_0= 'string' this_StringOption_1= ruleStringOption ) | (otherlv_2= 'text' this_TextOption_3= ruleTextOption ) | (otherlv_4= 'url' this_URLOption_5= ruleURLOption ) | (otherlv_6= 'integer' this_IntegerOption_7= ruleIntegerOption ) | (otherlv_8= 'float' this_FloatOption_9= ruleFloatOption ) | (otherlv_10= 'range' this_RangeOption_11= ruleRangeOption ) | (otherlv_12= 'select' this_SelectOption_13= ruleSelectOption ) | (otherlv_14= 'choice' this_ChoiceOption_15= ruleChoiceOption ) | (otherlv_16= 'boolean' this_BooleanOption_17= ruleBooleanOption ) | (otherlv_18= 'date' this_DateOption_19= ruleDateOption ) | ( (otherlv_20= 'colour' | otherlv_21= 'color' ) this_ColourOption_22= ruleColourOption ) | (otherlv_23= 'custom' this_CustomOption_24= ruleCustomOption ) )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:826:1: ( (otherlv_0= 'string' this_StringOption_1= ruleStringOption ) | (otherlv_2= 'text' this_TextOption_3= ruleTextOption ) | (otherlv_4= 'url' this_URLOption_5= ruleURLOption ) | (otherlv_6= 'integer' this_IntegerOption_7= ruleIntegerOption ) | (otherlv_8= 'float' this_FloatOption_9= ruleFloatOption ) | (otherlv_10= 'range' this_RangeOption_11= ruleRangeOption ) | (otherlv_12= 'select' this_SelectOption_13= ruleSelectOption ) | (otherlv_14= 'choice' this_ChoiceOption_15= ruleChoiceOption ) | (otherlv_16= 'boolean' this_BooleanOption_17= ruleBooleanOption ) | (otherlv_18= 'date' this_DateOption_19= ruleDateOption ) | ( (otherlv_20= 'colour' | otherlv_21= 'color' ) this_ColourOption_22= ruleColourOption ) | (otherlv_23= 'custom' this_CustomOption_24= ruleCustomOption ) )
            int alt32=12;
            switch ( input.LA(1) ) {
            case 33:
                {
                alt32=1;
                }
                break;
            case 34:
                {
                alt32=2;
                }
                break;
            case 35:
                {
                alt32=3;
                }
                break;
            case 36:
                {
                alt32=4;
                }
                break;
            case 37:
                {
                alt32=5;
                }
                break;
            case 38:
                {
                alt32=6;
                }
                break;
            case 39:
                {
                alt32=7;
                }
                break;
            case 40:
                {
                alt32=8;
                }
                break;
            case 41:
                {
                alt32=9;
                }
                break;
            case 42:
                {
                alt32=10;
                }
                break;
            case 43:
            case 44:
                {
                alt32=11;
                }
                break;
            case 45:
                {
                alt32=12;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 32, 0, input);

                throw nvae;
            }

            switch (alt32) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:826:2: (otherlv_0= 'string' this_StringOption_1= ruleStringOption )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:826:2: (otherlv_0= 'string' this_StringOption_1= ruleStringOption )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:826:4: otherlv_0= 'string' this_StringOption_1= ruleStringOption
                    {
                    otherlv_0=(Token)match(input,33,FOLLOW_33_in_ruleOptionType1549); 

                        	newLeafNode(otherlv_0, grammarAccess.getOptionTypeAccess().getStringKeyword_0_0());
                        
                     
                            newCompositeNode(grammarAccess.getOptionTypeAccess().getStringOptionParserRuleCall_0_1()); 
                        
                    pushFollow(FOLLOW_ruleStringOption_in_ruleOptionType1571);
                    this_StringOption_1=ruleStringOption();

                    state._fsp--;

                     
                            current = this_StringOption_1; 
                            afterParserOrEnumRuleCall();
                        

                    }


                    }
                    break;
                case 2 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:840:6: (otherlv_2= 'text' this_TextOption_3= ruleTextOption )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:840:6: (otherlv_2= 'text' this_TextOption_3= ruleTextOption )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:840:8: otherlv_2= 'text' this_TextOption_3= ruleTextOption
                    {
                    otherlv_2=(Token)match(input,34,FOLLOW_34_in_ruleOptionType1590); 

                        	newLeafNode(otherlv_2, grammarAccess.getOptionTypeAccess().getTextKeyword_1_0());
                        
                     
                            newCompositeNode(grammarAccess.getOptionTypeAccess().getTextOptionParserRuleCall_1_1()); 
                        
                    pushFollow(FOLLOW_ruleTextOption_in_ruleOptionType1612);
                    this_TextOption_3=ruleTextOption();

                    state._fsp--;

                     
                            current = this_TextOption_3; 
                            afterParserOrEnumRuleCall();
                        

                    }


                    }
                    break;
                case 3 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:854:6: (otherlv_4= 'url' this_URLOption_5= ruleURLOption )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:854:6: (otherlv_4= 'url' this_URLOption_5= ruleURLOption )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:854:8: otherlv_4= 'url' this_URLOption_5= ruleURLOption
                    {
                    otherlv_4=(Token)match(input,35,FOLLOW_35_in_ruleOptionType1631); 

                        	newLeafNode(otherlv_4, grammarAccess.getOptionTypeAccess().getUrlKeyword_2_0());
                        
                     
                            newCompositeNode(grammarAccess.getOptionTypeAccess().getURLOptionParserRuleCall_2_1()); 
                        
                    pushFollow(FOLLOW_ruleURLOption_in_ruleOptionType1653);
                    this_URLOption_5=ruleURLOption();

                    state._fsp--;

                     
                            current = this_URLOption_5; 
                            afterParserOrEnumRuleCall();
                        

                    }


                    }
                    break;
                case 4 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:868:6: (otherlv_6= 'integer' this_IntegerOption_7= ruleIntegerOption )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:868:6: (otherlv_6= 'integer' this_IntegerOption_7= ruleIntegerOption )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:868:8: otherlv_6= 'integer' this_IntegerOption_7= ruleIntegerOption
                    {
                    otherlv_6=(Token)match(input,36,FOLLOW_36_in_ruleOptionType1672); 

                        	newLeafNode(otherlv_6, grammarAccess.getOptionTypeAccess().getIntegerKeyword_3_0());
                        
                     
                            newCompositeNode(grammarAccess.getOptionTypeAccess().getIntegerOptionParserRuleCall_3_1()); 
                        
                    pushFollow(FOLLOW_ruleIntegerOption_in_ruleOptionType1694);
                    this_IntegerOption_7=ruleIntegerOption();

                    state._fsp--;

                     
                            current = this_IntegerOption_7; 
                            afterParserOrEnumRuleCall();
                        

                    }


                    }
                    break;
                case 5 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:882:6: (otherlv_8= 'float' this_FloatOption_9= ruleFloatOption )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:882:6: (otherlv_8= 'float' this_FloatOption_9= ruleFloatOption )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:882:8: otherlv_8= 'float' this_FloatOption_9= ruleFloatOption
                    {
                    otherlv_8=(Token)match(input,37,FOLLOW_37_in_ruleOptionType1713); 

                        	newLeafNode(otherlv_8, grammarAccess.getOptionTypeAccess().getFloatKeyword_4_0());
                        
                     
                            newCompositeNode(grammarAccess.getOptionTypeAccess().getFloatOptionParserRuleCall_4_1()); 
                        
                    pushFollow(FOLLOW_ruleFloatOption_in_ruleOptionType1735);
                    this_FloatOption_9=ruleFloatOption();

                    state._fsp--;

                     
                            current = this_FloatOption_9; 
                            afterParserOrEnumRuleCall();
                        

                    }


                    }
                    break;
                case 6 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:896:6: (otherlv_10= 'range' this_RangeOption_11= ruleRangeOption )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:896:6: (otherlv_10= 'range' this_RangeOption_11= ruleRangeOption )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:896:8: otherlv_10= 'range' this_RangeOption_11= ruleRangeOption
                    {
                    otherlv_10=(Token)match(input,38,FOLLOW_38_in_ruleOptionType1754); 

                        	newLeafNode(otherlv_10, grammarAccess.getOptionTypeAccess().getRangeKeyword_5_0());
                        
                     
                            newCompositeNode(grammarAccess.getOptionTypeAccess().getRangeOptionParserRuleCall_5_1()); 
                        
                    pushFollow(FOLLOW_ruleRangeOption_in_ruleOptionType1776);
                    this_RangeOption_11=ruleRangeOption();

                    state._fsp--;

                     
                            current = this_RangeOption_11; 
                            afterParserOrEnumRuleCall();
                        

                    }


                    }
                    break;
                case 7 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:910:6: (otherlv_12= 'select' this_SelectOption_13= ruleSelectOption )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:910:6: (otherlv_12= 'select' this_SelectOption_13= ruleSelectOption )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:910:8: otherlv_12= 'select' this_SelectOption_13= ruleSelectOption
                    {
                    otherlv_12=(Token)match(input,39,FOLLOW_39_in_ruleOptionType1795); 

                        	newLeafNode(otherlv_12, grammarAccess.getOptionTypeAccess().getSelectKeyword_6_0());
                        
                     
                            newCompositeNode(grammarAccess.getOptionTypeAccess().getSelectOptionParserRuleCall_6_1()); 
                        
                    pushFollow(FOLLOW_ruleSelectOption_in_ruleOptionType1817);
                    this_SelectOption_13=ruleSelectOption();

                    state._fsp--;

                     
                            current = this_SelectOption_13; 
                            afterParserOrEnumRuleCall();
                        

                    }


                    }
                    break;
                case 8 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:924:6: (otherlv_14= 'choice' this_ChoiceOption_15= ruleChoiceOption )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:924:6: (otherlv_14= 'choice' this_ChoiceOption_15= ruleChoiceOption )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:924:8: otherlv_14= 'choice' this_ChoiceOption_15= ruleChoiceOption
                    {
                    otherlv_14=(Token)match(input,40,FOLLOW_40_in_ruleOptionType1836); 

                        	newLeafNode(otherlv_14, grammarAccess.getOptionTypeAccess().getChoiceKeyword_7_0());
                        
                     
                            newCompositeNode(grammarAccess.getOptionTypeAccess().getChoiceOptionParserRuleCall_7_1()); 
                        
                    pushFollow(FOLLOW_ruleChoiceOption_in_ruleOptionType1858);
                    this_ChoiceOption_15=ruleChoiceOption();

                    state._fsp--;

                     
                            current = this_ChoiceOption_15; 
                            afterParserOrEnumRuleCall();
                        

                    }


                    }
                    break;
                case 9 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:938:6: (otherlv_16= 'boolean' this_BooleanOption_17= ruleBooleanOption )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:938:6: (otherlv_16= 'boolean' this_BooleanOption_17= ruleBooleanOption )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:938:8: otherlv_16= 'boolean' this_BooleanOption_17= ruleBooleanOption
                    {
                    otherlv_16=(Token)match(input,41,FOLLOW_41_in_ruleOptionType1877); 

                        	newLeafNode(otherlv_16, grammarAccess.getOptionTypeAccess().getBooleanKeyword_8_0());
                        
                     
                            newCompositeNode(grammarAccess.getOptionTypeAccess().getBooleanOptionParserRuleCall_8_1()); 
                        
                    pushFollow(FOLLOW_ruleBooleanOption_in_ruleOptionType1899);
                    this_BooleanOption_17=ruleBooleanOption();

                    state._fsp--;

                     
                            current = this_BooleanOption_17; 
                            afterParserOrEnumRuleCall();
                        

                    }


                    }
                    break;
                case 10 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:952:6: (otherlv_18= 'date' this_DateOption_19= ruleDateOption )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:952:6: (otherlv_18= 'date' this_DateOption_19= ruleDateOption )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:952:8: otherlv_18= 'date' this_DateOption_19= ruleDateOption
                    {
                    otherlv_18=(Token)match(input,42,FOLLOW_42_in_ruleOptionType1918); 

                        	newLeafNode(otherlv_18, grammarAccess.getOptionTypeAccess().getDateKeyword_9_0());
                        
                     
                            newCompositeNode(grammarAccess.getOptionTypeAccess().getDateOptionParserRuleCall_9_1()); 
                        
                    pushFollow(FOLLOW_ruleDateOption_in_ruleOptionType1940);
                    this_DateOption_19=ruleDateOption();

                    state._fsp--;

                     
                            current = this_DateOption_19; 
                            afterParserOrEnumRuleCall();
                        

                    }


                    }
                    break;
                case 11 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:966:6: ( (otherlv_20= 'colour' | otherlv_21= 'color' ) this_ColourOption_22= ruleColourOption )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:966:6: ( (otherlv_20= 'colour' | otherlv_21= 'color' ) this_ColourOption_22= ruleColourOption )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:966:7: (otherlv_20= 'colour' | otherlv_21= 'color' ) this_ColourOption_22= ruleColourOption
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:966:7: (otherlv_20= 'colour' | otherlv_21= 'color' )
                    int alt31=2;
                    int LA31_0 = input.LA(1);

                    if ( (LA31_0==43) ) {
                        alt31=1;
                    }
                    else if ( (LA31_0==44) ) {
                        alt31=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 31, 0, input);

                        throw nvae;
                    }
                    switch (alt31) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:966:9: otherlv_20= 'colour'
                            {
                            otherlv_20=(Token)match(input,43,FOLLOW_43_in_ruleOptionType1960); 

                                	newLeafNode(otherlv_20, grammarAccess.getOptionTypeAccess().getColourKeyword_10_0_0());
                                

                            }
                            break;
                        case 2 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:971:7: otherlv_21= 'color'
                            {
                            otherlv_21=(Token)match(input,44,FOLLOW_44_in_ruleOptionType1978); 

                                	newLeafNode(otherlv_21, grammarAccess.getOptionTypeAccess().getColorKeyword_10_0_1());
                                

                            }
                            break;

                    }

                     
                            newCompositeNode(grammarAccess.getOptionTypeAccess().getColourOptionParserRuleCall_10_1()); 
                        
                    pushFollow(FOLLOW_ruleColourOption_in_ruleOptionType2001);
                    this_ColourOption_22=ruleColourOption();

                    state._fsp--;

                     
                            current = this_ColourOption_22; 
                            afterParserOrEnumRuleCall();
                        

                    }


                    }
                    break;
                case 12 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:985:6: (otherlv_23= 'custom' this_CustomOption_24= ruleCustomOption )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:985:6: (otherlv_23= 'custom' this_CustomOption_24= ruleCustomOption )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:985:8: otherlv_23= 'custom' this_CustomOption_24= ruleCustomOption
                    {
                    otherlv_23=(Token)match(input,45,FOLLOW_45_in_ruleOptionType2020); 

                        	newLeafNode(otherlv_23, grammarAccess.getOptionTypeAccess().getCustomKeyword_11_0());
                        
                     
                            newCompositeNode(grammarAccess.getOptionTypeAccess().getCustomOptionParserRuleCall_11_1()); 
                        
                    pushFollow(FOLLOW_ruleCustomOption_in_ruleOptionType2042);
                    this_CustomOption_24=ruleCustomOption();

                    state._fsp--;

                     
                            current = this_CustomOption_24; 
                            afterParserOrEnumRuleCall();
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleOptionType"


    // $ANTLR start "entryRuleFloatOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1006:1: entryRuleFloatOption returns [EObject current=null] : iv_ruleFloatOption= ruleFloatOption EOF ;
    public final EObject entryRuleFloatOption() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleFloatOption = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1007:2: (iv_ruleFloatOption= ruleFloatOption EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1008:2: iv_ruleFloatOption= ruleFloatOption EOF
            {
             newCompositeNode(grammarAccess.getFloatOptionRule()); 
            pushFollow(FOLLOW_ruleFloatOption_in_entryRuleFloatOption2078);
            iv_ruleFloatOption=ruleFloatOption();

            state._fsp--;

             current =iv_ruleFloatOption; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleFloatOption2088); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleFloatOption"


    // $ANTLR start "ruleFloatOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1015:1: ruleFloatOption returns [EObject current=null] : ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? ) ;
    public final EObject ruleFloatOption() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        EObject lv_param_2_0 = null;

        EObject lv_param_4_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1018:28: ( ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1019:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1019:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1019:2: () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )?
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1019:2: ()
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1020:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getFloatOptionAccess().getFloatOptionAction_0(),
                        current);
                

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1025:2: (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )?
            int alt35=2;
            int LA35_0 = input.LA(1);

            if ( (LA35_0==46) ) {
                alt35=1;
            }
            switch (alt35) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1025:4: otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')'
                    {
                    otherlv_1=(Token)match(input,46,FOLLOW_46_in_ruleFloatOption2135); 

                        	newLeafNode(otherlv_1, grammarAccess.getFloatOptionAccess().getLeftParenthesisKeyword_1_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1029:1: ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )?
                    int alt34=2;
                    int LA34_0 = input.LA(1);

                    if ( (LA34_0==14||LA34_0==17||LA34_0==32||LA34_0==49) ) {
                        alt34=1;
                    }
                    switch (alt34) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1029:2: ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )*
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1029:2: ( (lv_param_2_0= ruleDefaultOptionParam ) )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1030:1: (lv_param_2_0= ruleDefaultOptionParam )
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1030:1: (lv_param_2_0= ruleDefaultOptionParam )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1031:3: lv_param_2_0= ruleDefaultOptionParam
                            {
                             
                            	        newCompositeNode(grammarAccess.getFloatOptionAccess().getParamDefaultOptionParamParserRuleCall_1_1_0_0()); 
                            	    
                            pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleFloatOption2157);
                            lv_param_2_0=ruleDefaultOptionParam();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getFloatOptionRule());
                            	        }
                                   		add(
                                   			current, 
                                   			"param",
                                    		lv_param_2_0, 
                                    		"DefaultOptionParam");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }

                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1047:2: (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )*
                            loop33:
                            do {
                                int alt33=2;
                                int LA33_0 = input.LA(1);

                                if ( (LA33_0==47) ) {
                                    alt33=1;
                                }


                                switch (alt33) {
                            	case 1 :
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1047:4: otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) )
                            	    {
                            	    otherlv_3=(Token)match(input,47,FOLLOW_47_in_ruleFloatOption2170); 

                            	        	newLeafNode(otherlv_3, grammarAccess.getFloatOptionAccess().getCommaKeyword_1_1_1_0());
                            	        
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1051:1: ( (lv_param_4_0= ruleDefaultOptionParam ) )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1052:1: (lv_param_4_0= ruleDefaultOptionParam )
                            	    {
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1052:1: (lv_param_4_0= ruleDefaultOptionParam )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1053:3: lv_param_4_0= ruleDefaultOptionParam
                            	    {
                            	     
                            	    	        newCompositeNode(grammarAccess.getFloatOptionAccess().getParamDefaultOptionParamParserRuleCall_1_1_1_1_0()); 
                            	    	    
                            	    pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleFloatOption2191);
                            	    lv_param_4_0=ruleDefaultOptionParam();

                            	    state._fsp--;


                            	    	        if (current==null) {
                            	    	            current = createModelElementForParent(grammarAccess.getFloatOptionRule());
                            	    	        }
                            	           		add(
                            	           			current, 
                            	           			"param",
                            	            		lv_param_4_0, 
                            	            		"DefaultOptionParam");
                            	    	        afterParserOrEnumRuleCall();
                            	    	    

                            	    }


                            	    }


                            	    }
                            	    break;

                            	default :
                            	    break loop33;
                                }
                            } while (true);


                            }
                            break;

                    }

                    otherlv_5=(Token)match(input,48,FOLLOW_48_in_ruleFloatOption2207); 

                        	newLeafNode(otherlv_5, grammarAccess.getFloatOptionAccess().getRightParenthesisKeyword_1_2());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleFloatOption"


    // $ANTLR start "entryRuleRangeOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1081:1: entryRuleRangeOption returns [EObject current=null] : iv_ruleRangeOption= ruleRangeOption EOF ;
    public final EObject entryRuleRangeOption() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleRangeOption = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1082:2: (iv_ruleRangeOption= ruleRangeOption EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1083:2: iv_ruleRangeOption= ruleRangeOption EOF
            {
             newCompositeNode(grammarAccess.getRangeOptionRule()); 
            pushFollow(FOLLOW_ruleRangeOption_in_entryRuleRangeOption2245);
            iv_ruleRangeOption=ruleRangeOption();

            state._fsp--;

             current =iv_ruleRangeOption; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRangeOption2255); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRangeOption"


    // $ANTLR start "ruleRangeOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1090:1: ruleRangeOption returns [EObject current=null] : ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? ) ;
    public final EObject ruleRangeOption() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        EObject lv_param_2_0 = null;

        EObject lv_param_4_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1093:28: ( ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1094:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1094:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1094:2: () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )?
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1094:2: ()
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1095:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getRangeOptionAccess().getRangeOptionAction_0(),
                        current);
                

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1100:2: (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )?
            int alt38=2;
            int LA38_0 = input.LA(1);

            if ( (LA38_0==46) ) {
                alt38=1;
            }
            switch (alt38) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1100:4: otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')'
                    {
                    otherlv_1=(Token)match(input,46,FOLLOW_46_in_ruleRangeOption2302); 

                        	newLeafNode(otherlv_1, grammarAccess.getRangeOptionAccess().getLeftParenthesisKeyword_1_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1104:1: ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )?
                    int alt37=2;
                    int LA37_0 = input.LA(1);

                    if ( (LA37_0==14||LA37_0==17||LA37_0==32||LA37_0==49) ) {
                        alt37=1;
                    }
                    switch (alt37) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1104:2: ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )*
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1104:2: ( (lv_param_2_0= ruleDefaultOptionParam ) )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1105:1: (lv_param_2_0= ruleDefaultOptionParam )
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1105:1: (lv_param_2_0= ruleDefaultOptionParam )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1106:3: lv_param_2_0= ruleDefaultOptionParam
                            {
                             
                            	        newCompositeNode(grammarAccess.getRangeOptionAccess().getParamDefaultOptionParamParserRuleCall_1_1_0_0()); 
                            	    
                            pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleRangeOption2324);
                            lv_param_2_0=ruleDefaultOptionParam();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getRangeOptionRule());
                            	        }
                                   		add(
                                   			current, 
                                   			"param",
                                    		lv_param_2_0, 
                                    		"DefaultOptionParam");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }

                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1122:2: (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )*
                            loop36:
                            do {
                                int alt36=2;
                                int LA36_0 = input.LA(1);

                                if ( (LA36_0==47) ) {
                                    alt36=1;
                                }


                                switch (alt36) {
                            	case 1 :
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1122:4: otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) )
                            	    {
                            	    otherlv_3=(Token)match(input,47,FOLLOW_47_in_ruleRangeOption2337); 

                            	        	newLeafNode(otherlv_3, grammarAccess.getRangeOptionAccess().getCommaKeyword_1_1_1_0());
                            	        
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1126:1: ( (lv_param_4_0= ruleDefaultOptionParam ) )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1127:1: (lv_param_4_0= ruleDefaultOptionParam )
                            	    {
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1127:1: (lv_param_4_0= ruleDefaultOptionParam )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1128:3: lv_param_4_0= ruleDefaultOptionParam
                            	    {
                            	     
                            	    	        newCompositeNode(grammarAccess.getRangeOptionAccess().getParamDefaultOptionParamParserRuleCall_1_1_1_1_0()); 
                            	    	    
                            	    pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleRangeOption2358);
                            	    lv_param_4_0=ruleDefaultOptionParam();

                            	    state._fsp--;


                            	    	        if (current==null) {
                            	    	            current = createModelElementForParent(grammarAccess.getRangeOptionRule());
                            	    	        }
                            	           		add(
                            	           			current, 
                            	           			"param",
                            	            		lv_param_4_0, 
                            	            		"DefaultOptionParam");
                            	    	        afterParserOrEnumRuleCall();
                            	    	    

                            	    }


                            	    }


                            	    }
                            	    break;

                            	default :
                            	    break loop36;
                                }
                            } while (true);


                            }
                            break;

                    }

                    otherlv_5=(Token)match(input,48,FOLLOW_48_in_ruleRangeOption2374); 

                        	newLeafNode(otherlv_5, grammarAccess.getRangeOptionAccess().getRightParenthesisKeyword_1_2());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRangeOption"


    // $ANTLR start "entryRuleSelectOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1158:1: entryRuleSelectOption returns [EObject current=null] : iv_ruleSelectOption= ruleSelectOption EOF ;
    public final EObject entryRuleSelectOption() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSelectOption = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1159:2: (iv_ruleSelectOption= ruleSelectOption EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1160:2: iv_ruleSelectOption= ruleSelectOption EOF
            {
             newCompositeNode(grammarAccess.getSelectOptionRule()); 
            pushFollow(FOLLOW_ruleSelectOption_in_entryRuleSelectOption2414);
            iv_ruleSelectOption=ruleSelectOption();

            state._fsp--;

             current =iv_ruleSelectOption; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectOption2424); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSelectOption"


    // $ANTLR start "ruleSelectOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1167:1: ruleSelectOption returns [EObject current=null] : ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleSelectParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleSelectParam ) ) )* )? otherlv_5= ')' )? ) ;
    public final EObject ruleSelectOption() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        EObject lv_param_2_0 = null;

        EObject lv_param_4_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1170:28: ( ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleSelectParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleSelectParam ) ) )* )? otherlv_5= ')' )? ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1171:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleSelectParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleSelectParam ) ) )* )? otherlv_5= ')' )? )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1171:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleSelectParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleSelectParam ) ) )* )? otherlv_5= ')' )? )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1171:2: () (otherlv_1= '(' ( ( (lv_param_2_0= ruleSelectParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleSelectParam ) ) )* )? otherlv_5= ')' )?
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1171:2: ()
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1172:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getSelectOptionAccess().getSelectOptionAction_0(),
                        current);
                

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1177:2: (otherlv_1= '(' ( ( (lv_param_2_0= ruleSelectParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleSelectParam ) ) )* )? otherlv_5= ')' )?
            int alt41=2;
            int LA41_0 = input.LA(1);

            if ( (LA41_0==46) ) {
                alt41=1;
            }
            switch (alt41) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1177:4: otherlv_1= '(' ( ( (lv_param_2_0= ruleSelectParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleSelectParam ) ) )* )? otherlv_5= ')'
                    {
                    otherlv_1=(Token)match(input,46,FOLLOW_46_in_ruleSelectOption2471); 

                        	newLeafNode(otherlv_1, grammarAccess.getSelectOptionAccess().getLeftParenthesisKeyword_1_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1181:1: ( ( (lv_param_2_0= ruleSelectParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleSelectParam ) ) )* )?
                    int alt40=2;
                    int LA40_0 = input.LA(1);

                    if ( (LA40_0==RULE_ID||LA40_0==14||LA40_0==17||LA40_0==32||LA40_0==49) ) {
                        alt40=1;
                    }
                    switch (alt40) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1181:2: ( (lv_param_2_0= ruleSelectParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleSelectParam ) ) )*
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1181:2: ( (lv_param_2_0= ruleSelectParam ) )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1182:1: (lv_param_2_0= ruleSelectParam )
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1182:1: (lv_param_2_0= ruleSelectParam )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1183:3: lv_param_2_0= ruleSelectParam
                            {
                             
                            	        newCompositeNode(grammarAccess.getSelectOptionAccess().getParamSelectParamParserRuleCall_1_1_0_0()); 
                            	    
                            pushFollow(FOLLOW_ruleSelectParam_in_ruleSelectOption2493);
                            lv_param_2_0=ruleSelectParam();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getSelectOptionRule());
                            	        }
                                   		add(
                                   			current, 
                                   			"param",
                                    		lv_param_2_0, 
                                    		"SelectParam");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }

                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1199:2: (otherlv_3= ',' ( (lv_param_4_0= ruleSelectParam ) ) )*
                            loop39:
                            do {
                                int alt39=2;
                                int LA39_0 = input.LA(1);

                                if ( (LA39_0==47) ) {
                                    alt39=1;
                                }


                                switch (alt39) {
                            	case 1 :
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1199:4: otherlv_3= ',' ( (lv_param_4_0= ruleSelectParam ) )
                            	    {
                            	    otherlv_3=(Token)match(input,47,FOLLOW_47_in_ruleSelectOption2506); 

                            	        	newLeafNode(otherlv_3, grammarAccess.getSelectOptionAccess().getCommaKeyword_1_1_1_0());
                            	        
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1203:1: ( (lv_param_4_0= ruleSelectParam ) )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1204:1: (lv_param_4_0= ruleSelectParam )
                            	    {
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1204:1: (lv_param_4_0= ruleSelectParam )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1205:3: lv_param_4_0= ruleSelectParam
                            	    {
                            	     
                            	    	        newCompositeNode(grammarAccess.getSelectOptionAccess().getParamSelectParamParserRuleCall_1_1_1_1_0()); 
                            	    	    
                            	    pushFollow(FOLLOW_ruleSelectParam_in_ruleSelectOption2527);
                            	    lv_param_4_0=ruleSelectParam();

                            	    state._fsp--;


                            	    	        if (current==null) {
                            	    	            current = createModelElementForParent(grammarAccess.getSelectOptionRule());
                            	    	        }
                            	           		add(
                            	           			current, 
                            	           			"param",
                            	            		lv_param_4_0, 
                            	            		"SelectParam");
                            	    	        afterParserOrEnumRuleCall();
                            	    	    

                            	    }


                            	    }


                            	    }
                            	    break;

                            	default :
                            	    break loop39;
                                }
                            } while (true);


                            }
                            break;

                    }

                    otherlv_5=(Token)match(input,48,FOLLOW_48_in_ruleSelectOption2543); 

                        	newLeafNode(otherlv_5, grammarAccess.getSelectOptionAccess().getRightParenthesisKeyword_1_2());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSelectOption"


    // $ANTLR start "entryRuleChoiceOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1233:1: entryRuleChoiceOption returns [EObject current=null] : iv_ruleChoiceOption= ruleChoiceOption EOF ;
    public final EObject entryRuleChoiceOption() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleChoiceOption = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1234:2: (iv_ruleChoiceOption= ruleChoiceOption EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1235:2: iv_ruleChoiceOption= ruleChoiceOption EOF
            {
             newCompositeNode(grammarAccess.getChoiceOptionRule()); 
            pushFollow(FOLLOW_ruleChoiceOption_in_entryRuleChoiceOption2581);
            iv_ruleChoiceOption=ruleChoiceOption();

            state._fsp--;

             current =iv_ruleChoiceOption; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleChoiceOption2591); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleChoiceOption"


    // $ANTLR start "ruleChoiceOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1242:1: ruleChoiceOption returns [EObject current=null] : ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleChoiceParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleChoiceParam ) ) )* )? otherlv_5= ')' )? ) ;
    public final EObject ruleChoiceOption() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        EObject lv_param_2_0 = null;

        EObject lv_param_4_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1245:28: ( ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleChoiceParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleChoiceParam ) ) )* )? otherlv_5= ')' )? ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1246:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleChoiceParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleChoiceParam ) ) )* )? otherlv_5= ')' )? )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1246:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleChoiceParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleChoiceParam ) ) )* )? otherlv_5= ')' )? )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1246:2: () (otherlv_1= '(' ( ( (lv_param_2_0= ruleChoiceParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleChoiceParam ) ) )* )? otherlv_5= ')' )?
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1246:2: ()
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1247:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getChoiceOptionAccess().getChoiceOptionAction_0(),
                        current);
                

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1252:2: (otherlv_1= '(' ( ( (lv_param_2_0= ruleChoiceParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleChoiceParam ) ) )* )? otherlv_5= ')' )?
            int alt44=2;
            int LA44_0 = input.LA(1);

            if ( (LA44_0==46) ) {
                alt44=1;
            }
            switch (alt44) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1252:4: otherlv_1= '(' ( ( (lv_param_2_0= ruleChoiceParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleChoiceParam ) ) )* )? otherlv_5= ')'
                    {
                    otherlv_1=(Token)match(input,46,FOLLOW_46_in_ruleChoiceOption2638); 

                        	newLeafNode(otherlv_1, grammarAccess.getChoiceOptionAccess().getLeftParenthesisKeyword_1_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1256:1: ( ( (lv_param_2_0= ruleChoiceParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleChoiceParam ) ) )* )?
                    int alt43=2;
                    int LA43_0 = input.LA(1);

                    if ( (LA43_0==RULE_ID||LA43_0==14||LA43_0==17||LA43_0==32||LA43_0==49) ) {
                        alt43=1;
                    }
                    switch (alt43) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1256:2: ( (lv_param_2_0= ruleChoiceParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleChoiceParam ) ) )*
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1256:2: ( (lv_param_2_0= ruleChoiceParam ) )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1257:1: (lv_param_2_0= ruleChoiceParam )
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1257:1: (lv_param_2_0= ruleChoiceParam )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1258:3: lv_param_2_0= ruleChoiceParam
                            {
                             
                            	        newCompositeNode(grammarAccess.getChoiceOptionAccess().getParamChoiceParamParserRuleCall_1_1_0_0()); 
                            	    
                            pushFollow(FOLLOW_ruleChoiceParam_in_ruleChoiceOption2660);
                            lv_param_2_0=ruleChoiceParam();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getChoiceOptionRule());
                            	        }
                                   		add(
                                   			current, 
                                   			"param",
                                    		lv_param_2_0, 
                                    		"ChoiceParam");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }

                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1274:2: (otherlv_3= ',' ( (lv_param_4_0= ruleChoiceParam ) ) )*
                            loop42:
                            do {
                                int alt42=2;
                                int LA42_0 = input.LA(1);

                                if ( (LA42_0==47) ) {
                                    alt42=1;
                                }


                                switch (alt42) {
                            	case 1 :
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1274:4: otherlv_3= ',' ( (lv_param_4_0= ruleChoiceParam ) )
                            	    {
                            	    otherlv_3=(Token)match(input,47,FOLLOW_47_in_ruleChoiceOption2673); 

                            	        	newLeafNode(otherlv_3, grammarAccess.getChoiceOptionAccess().getCommaKeyword_1_1_1_0());
                            	        
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1278:1: ( (lv_param_4_0= ruleChoiceParam ) )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1279:1: (lv_param_4_0= ruleChoiceParam )
                            	    {
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1279:1: (lv_param_4_0= ruleChoiceParam )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1280:3: lv_param_4_0= ruleChoiceParam
                            	    {
                            	     
                            	    	        newCompositeNode(grammarAccess.getChoiceOptionAccess().getParamChoiceParamParserRuleCall_1_1_1_1_0()); 
                            	    	    
                            	    pushFollow(FOLLOW_ruleChoiceParam_in_ruleChoiceOption2694);
                            	    lv_param_4_0=ruleChoiceParam();

                            	    state._fsp--;


                            	    	        if (current==null) {
                            	    	            current = createModelElementForParent(grammarAccess.getChoiceOptionRule());
                            	    	        }
                            	           		add(
                            	           			current, 
                            	           			"param",
                            	            		lv_param_4_0, 
                            	            		"ChoiceParam");
                            	    	        afterParserOrEnumRuleCall();
                            	    	    

                            	    }


                            	    }


                            	    }
                            	    break;

                            	default :
                            	    break loop42;
                                }
                            } while (true);


                            }
                            break;

                    }

                    otherlv_5=(Token)match(input,48,FOLLOW_48_in_ruleChoiceOption2710); 

                        	newLeafNode(otherlv_5, grammarAccess.getChoiceOptionAccess().getRightParenthesisKeyword_1_2());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleChoiceOption"


    // $ANTLR start "entryRuleURLOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1308:1: entryRuleURLOption returns [EObject current=null] : iv_ruleURLOption= ruleURLOption EOF ;
    public final EObject entryRuleURLOption() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleURLOption = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1309:2: (iv_ruleURLOption= ruleURLOption EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1310:2: iv_ruleURLOption= ruleURLOption EOF
            {
             newCompositeNode(grammarAccess.getURLOptionRule()); 
            pushFollow(FOLLOW_ruleURLOption_in_entryRuleURLOption2748);
            iv_ruleURLOption=ruleURLOption();

            state._fsp--;

             current =iv_ruleURLOption; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleURLOption2758); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleURLOption"


    // $ANTLR start "ruleURLOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1317:1: ruleURLOption returns [EObject current=null] : ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? ) ;
    public final EObject ruleURLOption() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        EObject lv_param_2_0 = null;

        EObject lv_param_4_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1320:28: ( ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1321:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1321:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1321:2: () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )?
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1321:2: ()
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1322:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getURLOptionAccess().getURLOptionAction_0(),
                        current);
                

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1327:2: (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )?
            int alt47=2;
            int LA47_0 = input.LA(1);

            if ( (LA47_0==46) ) {
                alt47=1;
            }
            switch (alt47) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1327:4: otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')'
                    {
                    otherlv_1=(Token)match(input,46,FOLLOW_46_in_ruleURLOption2805); 

                        	newLeafNode(otherlv_1, grammarAccess.getURLOptionAccess().getLeftParenthesisKeyword_1_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1331:1: ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )?
                    int alt46=2;
                    int LA46_0 = input.LA(1);

                    if ( (LA46_0==14||LA46_0==17||LA46_0==32||LA46_0==49) ) {
                        alt46=1;
                    }
                    switch (alt46) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1331:2: ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )*
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1331:2: ( (lv_param_2_0= ruleDefaultOptionParam ) )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1332:1: (lv_param_2_0= ruleDefaultOptionParam )
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1332:1: (lv_param_2_0= ruleDefaultOptionParam )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1333:3: lv_param_2_0= ruleDefaultOptionParam
                            {
                             
                            	        newCompositeNode(grammarAccess.getURLOptionAccess().getParamDefaultOptionParamParserRuleCall_1_1_0_0()); 
                            	    
                            pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleURLOption2827);
                            lv_param_2_0=ruleDefaultOptionParam();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getURLOptionRule());
                            	        }
                                   		add(
                                   			current, 
                                   			"param",
                                    		lv_param_2_0, 
                                    		"DefaultOptionParam");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }

                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1349:2: (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )*
                            loop45:
                            do {
                                int alt45=2;
                                int LA45_0 = input.LA(1);

                                if ( (LA45_0==47) ) {
                                    alt45=1;
                                }


                                switch (alt45) {
                            	case 1 :
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1349:4: otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) )
                            	    {
                            	    otherlv_3=(Token)match(input,47,FOLLOW_47_in_ruleURLOption2840); 

                            	        	newLeafNode(otherlv_3, grammarAccess.getURLOptionAccess().getCommaKeyword_1_1_1_0());
                            	        
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1353:1: ( (lv_param_4_0= ruleDefaultOptionParam ) )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1354:1: (lv_param_4_0= ruleDefaultOptionParam )
                            	    {
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1354:1: (lv_param_4_0= ruleDefaultOptionParam )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1355:3: lv_param_4_0= ruleDefaultOptionParam
                            	    {
                            	     
                            	    	        newCompositeNode(grammarAccess.getURLOptionAccess().getParamDefaultOptionParamParserRuleCall_1_1_1_1_0()); 
                            	    	    
                            	    pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleURLOption2861);
                            	    lv_param_4_0=ruleDefaultOptionParam();

                            	    state._fsp--;


                            	    	        if (current==null) {
                            	    	            current = createModelElementForParent(grammarAccess.getURLOptionRule());
                            	    	        }
                            	           		add(
                            	           			current, 
                            	           			"param",
                            	            		lv_param_4_0, 
                            	            		"DefaultOptionParam");
                            	    	        afterParserOrEnumRuleCall();
                            	    	    

                            	    }


                            	    }


                            	    }
                            	    break;

                            	default :
                            	    break loop45;
                                }
                            } while (true);


                            }
                            break;

                    }

                    otherlv_5=(Token)match(input,48,FOLLOW_48_in_ruleURLOption2877); 

                        	newLeafNode(otherlv_5, grammarAccess.getURLOptionAccess().getRightParenthesisKeyword_1_2());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleURLOption"


    // $ANTLR start "entryRuleIntegerOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1383:1: entryRuleIntegerOption returns [EObject current=null] : iv_ruleIntegerOption= ruleIntegerOption EOF ;
    public final EObject entryRuleIntegerOption() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleIntegerOption = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1384:2: (iv_ruleIntegerOption= ruleIntegerOption EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1385:2: iv_ruleIntegerOption= ruleIntegerOption EOF
            {
             newCompositeNode(grammarAccess.getIntegerOptionRule()); 
            pushFollow(FOLLOW_ruleIntegerOption_in_entryRuleIntegerOption2915);
            iv_ruleIntegerOption=ruleIntegerOption();

            state._fsp--;

             current =iv_ruleIntegerOption; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleIntegerOption2925); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleIntegerOption"


    // $ANTLR start "ruleIntegerOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1392:1: ruleIntegerOption returns [EObject current=null] : ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? ) ;
    public final EObject ruleIntegerOption() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        EObject lv_param_2_0 = null;

        EObject lv_param_4_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1395:28: ( ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1396:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1396:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1396:2: () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )?
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1396:2: ()
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1397:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getIntegerOptionAccess().getIntegerOptionAction_0(),
                        current);
                

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1402:2: (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )?
            int alt50=2;
            int LA50_0 = input.LA(1);

            if ( (LA50_0==46) ) {
                alt50=1;
            }
            switch (alt50) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1402:4: otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')'
                    {
                    otherlv_1=(Token)match(input,46,FOLLOW_46_in_ruleIntegerOption2972); 

                        	newLeafNode(otherlv_1, grammarAccess.getIntegerOptionAccess().getLeftParenthesisKeyword_1_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1406:1: ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )?
                    int alt49=2;
                    int LA49_0 = input.LA(1);

                    if ( (LA49_0==14||LA49_0==17||LA49_0==32||LA49_0==49) ) {
                        alt49=1;
                    }
                    switch (alt49) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1406:2: ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )*
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1406:2: ( (lv_param_2_0= ruleDefaultOptionParam ) )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1407:1: (lv_param_2_0= ruleDefaultOptionParam )
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1407:1: (lv_param_2_0= ruleDefaultOptionParam )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1408:3: lv_param_2_0= ruleDefaultOptionParam
                            {
                             
                            	        newCompositeNode(grammarAccess.getIntegerOptionAccess().getParamDefaultOptionParamParserRuleCall_1_1_0_0()); 
                            	    
                            pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleIntegerOption2994);
                            lv_param_2_0=ruleDefaultOptionParam();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getIntegerOptionRule());
                            	        }
                                   		add(
                                   			current, 
                                   			"param",
                                    		lv_param_2_0, 
                                    		"DefaultOptionParam");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }

                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1424:2: (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )*
                            loop48:
                            do {
                                int alt48=2;
                                int LA48_0 = input.LA(1);

                                if ( (LA48_0==47) ) {
                                    alt48=1;
                                }


                                switch (alt48) {
                            	case 1 :
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1424:4: otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) )
                            	    {
                            	    otherlv_3=(Token)match(input,47,FOLLOW_47_in_ruleIntegerOption3007); 

                            	        	newLeafNode(otherlv_3, grammarAccess.getIntegerOptionAccess().getCommaKeyword_1_1_1_0());
                            	        
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1428:1: ( (lv_param_4_0= ruleDefaultOptionParam ) )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1429:1: (lv_param_4_0= ruleDefaultOptionParam )
                            	    {
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1429:1: (lv_param_4_0= ruleDefaultOptionParam )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1430:3: lv_param_4_0= ruleDefaultOptionParam
                            	    {
                            	     
                            	    	        newCompositeNode(grammarAccess.getIntegerOptionAccess().getParamDefaultOptionParamParserRuleCall_1_1_1_1_0()); 
                            	    	    
                            	    pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleIntegerOption3028);
                            	    lv_param_4_0=ruleDefaultOptionParam();

                            	    state._fsp--;


                            	    	        if (current==null) {
                            	    	            current = createModelElementForParent(grammarAccess.getIntegerOptionRule());
                            	    	        }
                            	           		add(
                            	           			current, 
                            	           			"param",
                            	            		lv_param_4_0, 
                            	            		"DefaultOptionParam");
                            	    	        afterParserOrEnumRuleCall();
                            	    	    

                            	    }


                            	    }


                            	    }
                            	    break;

                            	default :
                            	    break loop48;
                                }
                            } while (true);


                            }
                            break;

                    }

                    otherlv_5=(Token)match(input,48,FOLLOW_48_in_ruleIntegerOption3044); 

                        	newLeafNode(otherlv_5, grammarAccess.getIntegerOptionAccess().getRightParenthesisKeyword_1_2());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleIntegerOption"


    // $ANTLR start "entryRuleBooleanOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1458:1: entryRuleBooleanOption returns [EObject current=null] : iv_ruleBooleanOption= ruleBooleanOption EOF ;
    public final EObject entryRuleBooleanOption() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleBooleanOption = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1459:2: (iv_ruleBooleanOption= ruleBooleanOption EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1460:2: iv_ruleBooleanOption= ruleBooleanOption EOF
            {
             newCompositeNode(grammarAccess.getBooleanOptionRule()); 
            pushFollow(FOLLOW_ruleBooleanOption_in_entryRuleBooleanOption3082);
            iv_ruleBooleanOption=ruleBooleanOption();

            state._fsp--;

             current =iv_ruleBooleanOption; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleBooleanOption3092); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleBooleanOption"


    // $ANTLR start "ruleBooleanOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1467:1: ruleBooleanOption returns [EObject current=null] : ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleBooleanParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleBooleanParam ) ) )* )? otherlv_5= ')' )? ) ;
    public final EObject ruleBooleanOption() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        EObject lv_param_2_0 = null;

        EObject lv_param_4_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1470:28: ( ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleBooleanParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleBooleanParam ) ) )* )? otherlv_5= ')' )? ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1471:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleBooleanParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleBooleanParam ) ) )* )? otherlv_5= ')' )? )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1471:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleBooleanParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleBooleanParam ) ) )* )? otherlv_5= ')' )? )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1471:2: () (otherlv_1= '(' ( ( (lv_param_2_0= ruleBooleanParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleBooleanParam ) ) )* )? otherlv_5= ')' )?
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1471:2: ()
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1472:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getBooleanOptionAccess().getBooleanOptionAction_0(),
                        current);
                

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1477:2: (otherlv_1= '(' ( ( (lv_param_2_0= ruleBooleanParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleBooleanParam ) ) )* )? otherlv_5= ')' )?
            int alt53=2;
            int LA53_0 = input.LA(1);

            if ( (LA53_0==46) ) {
                alt53=1;
            }
            switch (alt53) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1477:4: otherlv_1= '(' ( ( (lv_param_2_0= ruleBooleanParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleBooleanParam ) ) )* )? otherlv_5= ')'
                    {
                    otherlv_1=(Token)match(input,46,FOLLOW_46_in_ruleBooleanOption3139); 

                        	newLeafNode(otherlv_1, grammarAccess.getBooleanOptionAccess().getLeftParenthesisKeyword_1_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1481:1: ( ( (lv_param_2_0= ruleBooleanParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleBooleanParam ) ) )* )?
                    int alt52=2;
                    int LA52_0 = input.LA(1);

                    if ( (LA52_0==14||LA52_0==17||LA52_0==32||LA52_0==49) ) {
                        alt52=1;
                    }
                    switch (alt52) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1481:2: ( (lv_param_2_0= ruleBooleanParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleBooleanParam ) ) )*
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1481:2: ( (lv_param_2_0= ruleBooleanParam ) )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1482:1: (lv_param_2_0= ruleBooleanParam )
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1482:1: (lv_param_2_0= ruleBooleanParam )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1483:3: lv_param_2_0= ruleBooleanParam
                            {
                             
                            	        newCompositeNode(grammarAccess.getBooleanOptionAccess().getParamBooleanParamParserRuleCall_1_1_0_0()); 
                            	    
                            pushFollow(FOLLOW_ruleBooleanParam_in_ruleBooleanOption3161);
                            lv_param_2_0=ruleBooleanParam();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getBooleanOptionRule());
                            	        }
                                   		add(
                                   			current, 
                                   			"param",
                                    		lv_param_2_0, 
                                    		"BooleanParam");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }

                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1499:2: (otherlv_3= ',' ( (lv_param_4_0= ruleBooleanParam ) ) )*
                            loop51:
                            do {
                                int alt51=2;
                                int LA51_0 = input.LA(1);

                                if ( (LA51_0==47) ) {
                                    alt51=1;
                                }


                                switch (alt51) {
                            	case 1 :
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1499:4: otherlv_3= ',' ( (lv_param_4_0= ruleBooleanParam ) )
                            	    {
                            	    otherlv_3=(Token)match(input,47,FOLLOW_47_in_ruleBooleanOption3174); 

                            	        	newLeafNode(otherlv_3, grammarAccess.getBooleanOptionAccess().getCommaKeyword_1_1_1_0());
                            	        
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1503:1: ( (lv_param_4_0= ruleBooleanParam ) )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1504:1: (lv_param_4_0= ruleBooleanParam )
                            	    {
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1504:1: (lv_param_4_0= ruleBooleanParam )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1505:3: lv_param_4_0= ruleBooleanParam
                            	    {
                            	     
                            	    	        newCompositeNode(grammarAccess.getBooleanOptionAccess().getParamBooleanParamParserRuleCall_1_1_1_1_0()); 
                            	    	    
                            	    pushFollow(FOLLOW_ruleBooleanParam_in_ruleBooleanOption3195);
                            	    lv_param_4_0=ruleBooleanParam();

                            	    state._fsp--;


                            	    	        if (current==null) {
                            	    	            current = createModelElementForParent(grammarAccess.getBooleanOptionRule());
                            	    	        }
                            	           		add(
                            	           			current, 
                            	           			"param",
                            	            		lv_param_4_0, 
                            	            		"BooleanParam");
                            	    	        afterParserOrEnumRuleCall();
                            	    	    

                            	    }


                            	    }


                            	    }
                            	    break;

                            	default :
                            	    break loop51;
                                }
                            } while (true);


                            }
                            break;

                    }

                    otherlv_5=(Token)match(input,48,FOLLOW_48_in_ruleBooleanOption3211); 

                        	newLeafNode(otherlv_5, grammarAccess.getBooleanOptionAccess().getRightParenthesisKeyword_1_2());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleBooleanOption"


    // $ANTLR start "entryRuleDateOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1533:1: entryRuleDateOption returns [EObject current=null] : iv_ruleDateOption= ruleDateOption EOF ;
    public final EObject entryRuleDateOption() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleDateOption = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1534:2: (iv_ruleDateOption= ruleDateOption EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1535:2: iv_ruleDateOption= ruleDateOption EOF
            {
             newCompositeNode(grammarAccess.getDateOptionRule()); 
            pushFollow(FOLLOW_ruleDateOption_in_entryRuleDateOption3249);
            iv_ruleDateOption=ruleDateOption();

            state._fsp--;

             current =iv_ruleDateOption; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDateOption3259); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleDateOption"


    // $ANTLR start "ruleDateOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1542:1: ruleDateOption returns [EObject current=null] : ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? ) ;
    public final EObject ruleDateOption() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        EObject lv_param_2_0 = null;

        EObject lv_param_4_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1545:28: ( ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1546:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1546:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1546:2: () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )?
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1546:2: ()
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1547:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getDateOptionAccess().getDateOptionAction_0(),
                        current);
                

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1552:2: (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )?
            int alt56=2;
            int LA56_0 = input.LA(1);

            if ( (LA56_0==46) ) {
                alt56=1;
            }
            switch (alt56) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1552:4: otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')'
                    {
                    otherlv_1=(Token)match(input,46,FOLLOW_46_in_ruleDateOption3306); 

                        	newLeafNode(otherlv_1, grammarAccess.getDateOptionAccess().getLeftParenthesisKeyword_1_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1556:1: ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )?
                    int alt55=2;
                    int LA55_0 = input.LA(1);

                    if ( (LA55_0==14||LA55_0==17||LA55_0==32||LA55_0==49) ) {
                        alt55=1;
                    }
                    switch (alt55) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1556:2: ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )*
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1556:2: ( (lv_param_2_0= ruleDefaultOptionParam ) )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1557:1: (lv_param_2_0= ruleDefaultOptionParam )
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1557:1: (lv_param_2_0= ruleDefaultOptionParam )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1558:3: lv_param_2_0= ruleDefaultOptionParam
                            {
                             
                            	        newCompositeNode(grammarAccess.getDateOptionAccess().getParamDefaultOptionParamParserRuleCall_1_1_0_0()); 
                            	    
                            pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleDateOption3328);
                            lv_param_2_0=ruleDefaultOptionParam();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getDateOptionRule());
                            	        }
                                   		add(
                                   			current, 
                                   			"param",
                                    		lv_param_2_0, 
                                    		"DefaultOptionParam");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }

                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1574:2: (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )*
                            loop54:
                            do {
                                int alt54=2;
                                int LA54_0 = input.LA(1);

                                if ( (LA54_0==47) ) {
                                    alt54=1;
                                }


                                switch (alt54) {
                            	case 1 :
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1574:4: otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) )
                            	    {
                            	    otherlv_3=(Token)match(input,47,FOLLOW_47_in_ruleDateOption3341); 

                            	        	newLeafNode(otherlv_3, grammarAccess.getDateOptionAccess().getCommaKeyword_1_1_1_0());
                            	        
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1578:1: ( (lv_param_4_0= ruleDefaultOptionParam ) )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1579:1: (lv_param_4_0= ruleDefaultOptionParam )
                            	    {
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1579:1: (lv_param_4_0= ruleDefaultOptionParam )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1580:3: lv_param_4_0= ruleDefaultOptionParam
                            	    {
                            	     
                            	    	        newCompositeNode(grammarAccess.getDateOptionAccess().getParamDefaultOptionParamParserRuleCall_1_1_1_1_0()); 
                            	    	    
                            	    pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleDateOption3362);
                            	    lv_param_4_0=ruleDefaultOptionParam();

                            	    state._fsp--;


                            	    	        if (current==null) {
                            	    	            current = createModelElementForParent(grammarAccess.getDateOptionRule());
                            	    	        }
                            	           		add(
                            	           			current, 
                            	           			"param",
                            	            		lv_param_4_0, 
                            	            		"DefaultOptionParam");
                            	    	        afterParserOrEnumRuleCall();
                            	    	    

                            	    }


                            	    }


                            	    }
                            	    break;

                            	default :
                            	    break loop54;
                                }
                            } while (true);


                            }
                            break;

                    }

                    otherlv_5=(Token)match(input,48,FOLLOW_48_in_ruleDateOption3378); 

                        	newLeafNode(otherlv_5, grammarAccess.getDateOptionAccess().getRightParenthesisKeyword_1_2());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDateOption"


    // $ANTLR start "entryRuleColourOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1608:1: entryRuleColourOption returns [EObject current=null] : iv_ruleColourOption= ruleColourOption EOF ;
    public final EObject entryRuleColourOption() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleColourOption = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1609:2: (iv_ruleColourOption= ruleColourOption EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1610:2: iv_ruleColourOption= ruleColourOption EOF
            {
             newCompositeNode(grammarAccess.getColourOptionRule()); 
            pushFollow(FOLLOW_ruleColourOption_in_entryRuleColourOption3416);
            iv_ruleColourOption=ruleColourOption();

            state._fsp--;

             current =iv_ruleColourOption; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleColourOption3426); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleColourOption"


    // $ANTLR start "ruleColourOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1617:1: ruleColourOption returns [EObject current=null] : ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? ) ;
    public final EObject ruleColourOption() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        EObject lv_param_2_0 = null;

        EObject lv_param_4_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1620:28: ( ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1621:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1621:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )? )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1621:2: () (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )?
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1621:2: ()
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1622:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getColourOptionAccess().getColourOptionAction_0(),
                        current);
                

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1627:2: (otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')' )?
            int alt59=2;
            int LA59_0 = input.LA(1);

            if ( (LA59_0==46) ) {
                alt59=1;
            }
            switch (alt59) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1627:4: otherlv_1= '(' ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )? otherlv_5= ')'
                    {
                    otherlv_1=(Token)match(input,46,FOLLOW_46_in_ruleColourOption3473); 

                        	newLeafNode(otherlv_1, grammarAccess.getColourOptionAccess().getLeftParenthesisKeyword_1_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1631:1: ( ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )* )?
                    int alt58=2;
                    int LA58_0 = input.LA(1);

                    if ( (LA58_0==14||LA58_0==17||LA58_0==32||LA58_0==49) ) {
                        alt58=1;
                    }
                    switch (alt58) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1631:2: ( (lv_param_2_0= ruleDefaultOptionParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )*
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1631:2: ( (lv_param_2_0= ruleDefaultOptionParam ) )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1632:1: (lv_param_2_0= ruleDefaultOptionParam )
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1632:1: (lv_param_2_0= ruleDefaultOptionParam )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1633:3: lv_param_2_0= ruleDefaultOptionParam
                            {
                             
                            	        newCompositeNode(grammarAccess.getColourOptionAccess().getParamDefaultOptionParamParserRuleCall_1_1_0_0()); 
                            	    
                            pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleColourOption3495);
                            lv_param_2_0=ruleDefaultOptionParam();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getColourOptionRule());
                            	        }
                                   		add(
                                   			current, 
                                   			"param",
                                    		lv_param_2_0, 
                                    		"DefaultOptionParam");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }

                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1649:2: (otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) ) )*
                            loop57:
                            do {
                                int alt57=2;
                                int LA57_0 = input.LA(1);

                                if ( (LA57_0==47) ) {
                                    alt57=1;
                                }


                                switch (alt57) {
                            	case 1 :
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1649:4: otherlv_3= ',' ( (lv_param_4_0= ruleDefaultOptionParam ) )
                            	    {
                            	    otherlv_3=(Token)match(input,47,FOLLOW_47_in_ruleColourOption3508); 

                            	        	newLeafNode(otherlv_3, grammarAccess.getColourOptionAccess().getCommaKeyword_1_1_1_0());
                            	        
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1653:1: ( (lv_param_4_0= ruleDefaultOptionParam ) )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1654:1: (lv_param_4_0= ruleDefaultOptionParam )
                            	    {
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1654:1: (lv_param_4_0= ruleDefaultOptionParam )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1655:3: lv_param_4_0= ruleDefaultOptionParam
                            	    {
                            	     
                            	    	        newCompositeNode(grammarAccess.getColourOptionAccess().getParamDefaultOptionParamParserRuleCall_1_1_1_1_0()); 
                            	    	    
                            	    pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleColourOption3529);
                            	    lv_param_4_0=ruleDefaultOptionParam();

                            	    state._fsp--;


                            	    	        if (current==null) {
                            	    	            current = createModelElementForParent(grammarAccess.getColourOptionRule());
                            	    	        }
                            	           		add(
                            	           			current, 
                            	           			"param",
                            	            		lv_param_4_0, 
                            	            		"DefaultOptionParam");
                            	    	        afterParserOrEnumRuleCall();
                            	    	    

                            	    }


                            	    }


                            	    }
                            	    break;

                            	default :
                            	    break loop57;
                                }
                            } while (true);


                            }
                            break;

                    }

                    otherlv_5=(Token)match(input,48,FOLLOW_48_in_ruleColourOption3545); 

                        	newLeafNode(otherlv_5, grammarAccess.getColourOptionAccess().getRightParenthesisKeyword_1_2());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleColourOption"


    // $ANTLR start "entryRuleCustomOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1683:1: entryRuleCustomOption returns [EObject current=null] : iv_ruleCustomOption= ruleCustomOption EOF ;
    public final EObject entryRuleCustomOption() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleCustomOption = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1684:2: (iv_ruleCustomOption= ruleCustomOption EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1685:2: iv_ruleCustomOption= ruleCustomOption EOF
            {
             newCompositeNode(grammarAccess.getCustomOptionRule()); 
            pushFollow(FOLLOW_ruleCustomOption_in_entryRuleCustomOption3583);
            iv_ruleCustomOption=ruleCustomOption();

            state._fsp--;

             current =iv_ruleCustomOption; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleCustomOption3593); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleCustomOption"


    // $ANTLR start "ruleCustomOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1692:1: ruleCustomOption returns [EObject current=null] : ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleCustomParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleCustomParam ) ) )* )? otherlv_5= ')' )? ) ;
    public final EObject ruleCustomOption() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        EObject lv_param_2_0 = null;

        EObject lv_param_4_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1695:28: ( ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleCustomParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleCustomParam ) ) )* )? otherlv_5= ')' )? ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1696:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleCustomParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleCustomParam ) ) )* )? otherlv_5= ')' )? )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1696:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleCustomParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleCustomParam ) ) )* )? otherlv_5= ')' )? )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1696:2: () (otherlv_1= '(' ( ( (lv_param_2_0= ruleCustomParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleCustomParam ) ) )* )? otherlv_5= ')' )?
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1696:2: ()
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1697:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getCustomOptionAccess().getCustomOptionAction_0(),
                        current);
                

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1702:2: (otherlv_1= '(' ( ( (lv_param_2_0= ruleCustomParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleCustomParam ) ) )* )? otherlv_5= ')' )?
            int alt62=2;
            int LA62_0 = input.LA(1);

            if ( (LA62_0==46) ) {
                alt62=1;
            }
            switch (alt62) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1702:4: otherlv_1= '(' ( ( (lv_param_2_0= ruleCustomParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleCustomParam ) ) )* )? otherlv_5= ')'
                    {
                    otherlv_1=(Token)match(input,46,FOLLOW_46_in_ruleCustomOption3640); 

                        	newLeafNode(otherlv_1, grammarAccess.getCustomOptionAccess().getLeftParenthesisKeyword_1_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1706:1: ( ( (lv_param_2_0= ruleCustomParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleCustomParam ) ) )* )?
                    int alt61=2;
                    int LA61_0 = input.LA(1);

                    if ( (LA61_0==RULE_ID||LA61_0==14||LA61_0==17||LA61_0==32||LA61_0==49||LA61_0==54) ) {
                        alt61=1;
                    }
                    switch (alt61) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1706:2: ( (lv_param_2_0= ruleCustomParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleCustomParam ) ) )*
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1706:2: ( (lv_param_2_0= ruleCustomParam ) )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1707:1: (lv_param_2_0= ruleCustomParam )
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1707:1: (lv_param_2_0= ruleCustomParam )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1708:3: lv_param_2_0= ruleCustomParam
                            {
                             
                            	        newCompositeNode(grammarAccess.getCustomOptionAccess().getParamCustomParamParserRuleCall_1_1_0_0()); 
                            	    
                            pushFollow(FOLLOW_ruleCustomParam_in_ruleCustomOption3662);
                            lv_param_2_0=ruleCustomParam();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getCustomOptionRule());
                            	        }
                                   		add(
                                   			current, 
                                   			"param",
                                    		lv_param_2_0, 
                                    		"CustomParam");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }

                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1724:2: (otherlv_3= ',' ( (lv_param_4_0= ruleCustomParam ) ) )*
                            loop60:
                            do {
                                int alt60=2;
                                int LA60_0 = input.LA(1);

                                if ( (LA60_0==47) ) {
                                    alt60=1;
                                }


                                switch (alt60) {
                            	case 1 :
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1724:4: otherlv_3= ',' ( (lv_param_4_0= ruleCustomParam ) )
                            	    {
                            	    otherlv_3=(Token)match(input,47,FOLLOW_47_in_ruleCustomOption3675); 

                            	        	newLeafNode(otherlv_3, grammarAccess.getCustomOptionAccess().getCommaKeyword_1_1_1_0());
                            	        
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1728:1: ( (lv_param_4_0= ruleCustomParam ) )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1729:1: (lv_param_4_0= ruleCustomParam )
                            	    {
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1729:1: (lv_param_4_0= ruleCustomParam )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1730:3: lv_param_4_0= ruleCustomParam
                            	    {
                            	     
                            	    	        newCompositeNode(grammarAccess.getCustomOptionAccess().getParamCustomParamParserRuleCall_1_1_1_1_0()); 
                            	    	    
                            	    pushFollow(FOLLOW_ruleCustomParam_in_ruleCustomOption3696);
                            	    lv_param_4_0=ruleCustomParam();

                            	    state._fsp--;


                            	    	        if (current==null) {
                            	    	            current = createModelElementForParent(grammarAccess.getCustomOptionRule());
                            	    	        }
                            	           		add(
                            	           			current, 
                            	           			"param",
                            	            		lv_param_4_0, 
                            	            		"CustomParam");
                            	    	        afterParserOrEnumRuleCall();
                            	    	    

                            	    }


                            	    }


                            	    }
                            	    break;

                            	default :
                            	    break loop60;
                                }
                            } while (true);


                            }
                            break;

                    }

                    otherlv_5=(Token)match(input,48,FOLLOW_48_in_ruleCustomOption3712); 

                        	newLeafNode(otherlv_5, grammarAccess.getCustomOptionAccess().getRightParenthesisKeyword_1_2());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleCustomOption"


    // $ANTLR start "entryRuleStringOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1758:1: entryRuleStringOption returns [EObject current=null] : iv_ruleStringOption= ruleStringOption EOF ;
    public final EObject entryRuleStringOption() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleStringOption = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1759:2: (iv_ruleStringOption= ruleStringOption EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1760:2: iv_ruleStringOption= ruleStringOption EOF
            {
             newCompositeNode(grammarAccess.getStringOptionRule()); 
            pushFollow(FOLLOW_ruleStringOption_in_entryRuleStringOption3750);
            iv_ruleStringOption=ruleStringOption();

            state._fsp--;

             current =iv_ruleStringOption; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleStringOption3760); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleStringOption"


    // $ANTLR start "ruleStringOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1767:1: ruleStringOption returns [EObject current=null] : ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleStringParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleStringParam ) ) )* )? otherlv_5= ')' )? ) ;
    public final EObject ruleStringOption() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        EObject lv_param_2_0 = null;

        EObject lv_param_4_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1770:28: ( ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleStringParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleStringParam ) ) )* )? otherlv_5= ')' )? ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1771:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleStringParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleStringParam ) ) )* )? otherlv_5= ')' )? )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1771:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleStringParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleStringParam ) ) )* )? otherlv_5= ')' )? )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1771:2: () (otherlv_1= '(' ( ( (lv_param_2_0= ruleStringParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleStringParam ) ) )* )? otherlv_5= ')' )?
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1771:2: ()
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1772:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getStringOptionAccess().getStringOptionAction_0(),
                        current);
                

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1777:2: (otherlv_1= '(' ( ( (lv_param_2_0= ruleStringParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleStringParam ) ) )* )? otherlv_5= ')' )?
            int alt65=2;
            int LA65_0 = input.LA(1);

            if ( (LA65_0==46) ) {
                alt65=1;
            }
            switch (alt65) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1777:4: otherlv_1= '(' ( ( (lv_param_2_0= ruleStringParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleStringParam ) ) )* )? otherlv_5= ')'
                    {
                    otherlv_1=(Token)match(input,46,FOLLOW_46_in_ruleStringOption3807); 

                        	newLeafNode(otherlv_1, grammarAccess.getStringOptionAccess().getLeftParenthesisKeyword_1_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1781:1: ( ( (lv_param_2_0= ruleStringParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleStringParam ) ) )* )?
                    int alt64=2;
                    int LA64_0 = input.LA(1);

                    if ( (LA64_0==14||LA64_0==17||LA64_0==32||LA64_0==49||(LA64_0>=52 && LA64_0<=53)) ) {
                        alt64=1;
                    }
                    switch (alt64) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1781:2: ( (lv_param_2_0= ruleStringParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleStringParam ) ) )*
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1781:2: ( (lv_param_2_0= ruleStringParam ) )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1782:1: (lv_param_2_0= ruleStringParam )
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1782:1: (lv_param_2_0= ruleStringParam )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1783:3: lv_param_2_0= ruleStringParam
                            {
                             
                            	        newCompositeNode(grammarAccess.getStringOptionAccess().getParamStringParamParserRuleCall_1_1_0_0()); 
                            	    
                            pushFollow(FOLLOW_ruleStringParam_in_ruleStringOption3829);
                            lv_param_2_0=ruleStringParam();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getStringOptionRule());
                            	        }
                                   		add(
                                   			current, 
                                   			"param",
                                    		lv_param_2_0, 
                                    		"StringParam");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }

                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1799:2: (otherlv_3= ',' ( (lv_param_4_0= ruleStringParam ) ) )*
                            loop63:
                            do {
                                int alt63=2;
                                int LA63_0 = input.LA(1);

                                if ( (LA63_0==47) ) {
                                    alt63=1;
                                }


                                switch (alt63) {
                            	case 1 :
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1799:4: otherlv_3= ',' ( (lv_param_4_0= ruleStringParam ) )
                            	    {
                            	    otherlv_3=(Token)match(input,47,FOLLOW_47_in_ruleStringOption3842); 

                            	        	newLeafNode(otherlv_3, grammarAccess.getStringOptionAccess().getCommaKeyword_1_1_1_0());
                            	        
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1803:1: ( (lv_param_4_0= ruleStringParam ) )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1804:1: (lv_param_4_0= ruleStringParam )
                            	    {
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1804:1: (lv_param_4_0= ruleStringParam )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1805:3: lv_param_4_0= ruleStringParam
                            	    {
                            	     
                            	    	        newCompositeNode(grammarAccess.getStringOptionAccess().getParamStringParamParserRuleCall_1_1_1_1_0()); 
                            	    	    
                            	    pushFollow(FOLLOW_ruleStringParam_in_ruleStringOption3863);
                            	    lv_param_4_0=ruleStringParam();

                            	    state._fsp--;


                            	    	        if (current==null) {
                            	    	            current = createModelElementForParent(grammarAccess.getStringOptionRule());
                            	    	        }
                            	           		add(
                            	           			current, 
                            	           			"param",
                            	            		lv_param_4_0, 
                            	            		"StringParam");
                            	    	        afterParserOrEnumRuleCall();
                            	    	    

                            	    }


                            	    }


                            	    }
                            	    break;

                            	default :
                            	    break loop63;
                                }
                            } while (true);


                            }
                            break;

                    }

                    otherlv_5=(Token)match(input,48,FOLLOW_48_in_ruleStringOption3879); 

                        	newLeafNode(otherlv_5, grammarAccess.getStringOptionAccess().getRightParenthesisKeyword_1_2());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleStringOption"


    // $ANTLR start "entryRuleTextOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1833:1: entryRuleTextOption returns [EObject current=null] : iv_ruleTextOption= ruleTextOption EOF ;
    public final EObject entryRuleTextOption() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleTextOption = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1834:2: (iv_ruleTextOption= ruleTextOption EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1835:2: iv_ruleTextOption= ruleTextOption EOF
            {
             newCompositeNode(grammarAccess.getTextOptionRule()); 
            pushFollow(FOLLOW_ruleTextOption_in_entryRuleTextOption3917);
            iv_ruleTextOption=ruleTextOption();

            state._fsp--;

             current =iv_ruleTextOption; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTextOption3927); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleTextOption"


    // $ANTLR start "ruleTextOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1842:1: ruleTextOption returns [EObject current=null] : ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleTextParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleTextParam ) ) )* )? otherlv_5= ')' )? ) ;
    public final EObject ruleTextOption() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        EObject lv_param_2_0 = null;

        EObject lv_param_4_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1845:28: ( ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleTextParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleTextParam ) ) )* )? otherlv_5= ')' )? ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1846:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleTextParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleTextParam ) ) )* )? otherlv_5= ')' )? )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1846:1: ( () (otherlv_1= '(' ( ( (lv_param_2_0= ruleTextParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleTextParam ) ) )* )? otherlv_5= ')' )? )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1846:2: () (otherlv_1= '(' ( ( (lv_param_2_0= ruleTextParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleTextParam ) ) )* )? otherlv_5= ')' )?
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1846:2: ()
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1847:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getTextOptionAccess().getTextOptionAction_0(),
                        current);
                

            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1852:2: (otherlv_1= '(' ( ( (lv_param_2_0= ruleTextParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleTextParam ) ) )* )? otherlv_5= ')' )?
            int alt68=2;
            int LA68_0 = input.LA(1);

            if ( (LA68_0==46) ) {
                alt68=1;
            }
            switch (alt68) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1852:4: otherlv_1= '(' ( ( (lv_param_2_0= ruleTextParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleTextParam ) ) )* )? otherlv_5= ')'
                    {
                    otherlv_1=(Token)match(input,46,FOLLOW_46_in_ruleTextOption3974); 

                        	newLeafNode(otherlv_1, grammarAccess.getTextOptionAccess().getLeftParenthesisKeyword_1_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1856:1: ( ( (lv_param_2_0= ruleTextParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleTextParam ) ) )* )?
                    int alt67=2;
                    int LA67_0 = input.LA(1);

                    if ( (LA67_0==14||LA67_0==17||LA67_0==32||LA67_0==49||(LA67_0>=51 && LA67_0<=53)) ) {
                        alt67=1;
                    }
                    switch (alt67) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1856:2: ( (lv_param_2_0= ruleTextParam ) ) (otherlv_3= ',' ( (lv_param_4_0= ruleTextParam ) ) )*
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1856:2: ( (lv_param_2_0= ruleTextParam ) )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1857:1: (lv_param_2_0= ruleTextParam )
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1857:1: (lv_param_2_0= ruleTextParam )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1858:3: lv_param_2_0= ruleTextParam
                            {
                             
                            	        newCompositeNode(grammarAccess.getTextOptionAccess().getParamTextParamParserRuleCall_1_1_0_0()); 
                            	    
                            pushFollow(FOLLOW_ruleTextParam_in_ruleTextOption3996);
                            lv_param_2_0=ruleTextParam();

                            state._fsp--;


                            	        if (current==null) {
                            	            current = createModelElementForParent(grammarAccess.getTextOptionRule());
                            	        }
                                   		add(
                                   			current, 
                                   			"param",
                                    		lv_param_2_0, 
                                    		"TextParam");
                            	        afterParserOrEnumRuleCall();
                            	    

                            }


                            }

                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1874:2: (otherlv_3= ',' ( (lv_param_4_0= ruleTextParam ) ) )*
                            loop66:
                            do {
                                int alt66=2;
                                int LA66_0 = input.LA(1);

                                if ( (LA66_0==47) ) {
                                    alt66=1;
                                }


                                switch (alt66) {
                            	case 1 :
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1874:4: otherlv_3= ',' ( (lv_param_4_0= ruleTextParam ) )
                            	    {
                            	    otherlv_3=(Token)match(input,47,FOLLOW_47_in_ruleTextOption4009); 

                            	        	newLeafNode(otherlv_3, grammarAccess.getTextOptionAccess().getCommaKeyword_1_1_1_0());
                            	        
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1878:1: ( (lv_param_4_0= ruleTextParam ) )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1879:1: (lv_param_4_0= ruleTextParam )
                            	    {
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1879:1: (lv_param_4_0= ruleTextParam )
                            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1880:3: lv_param_4_0= ruleTextParam
                            	    {
                            	     
                            	    	        newCompositeNode(grammarAccess.getTextOptionAccess().getParamTextParamParserRuleCall_1_1_1_1_0()); 
                            	    	    
                            	    pushFollow(FOLLOW_ruleTextParam_in_ruleTextOption4030);
                            	    lv_param_4_0=ruleTextParam();

                            	    state._fsp--;


                            	    	        if (current==null) {
                            	    	            current = createModelElementForParent(grammarAccess.getTextOptionRule());
                            	    	        }
                            	           		add(
                            	           			current, 
                            	           			"param",
                            	            		lv_param_4_0, 
                            	            		"TextParam");
                            	    	        afterParserOrEnumRuleCall();
                            	    	    

                            	    }


                            	    }


                            	    }
                            	    break;

                            	default :
                            	    break loop66;
                                }
                            } while (true);


                            }
                            break;

                    }

                    otherlv_5=(Token)match(input,48,FOLLOW_48_in_ruleTextOption4046); 

                        	newLeafNode(otherlv_5, grammarAccess.getTextOptionAccess().getRightParenthesisKeyword_1_2());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleTextOption"


    // $ANTLR start "entryRuleDefaultOptionParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1908:1: entryRuleDefaultOptionParam returns [EObject current=null] : iv_ruleDefaultOptionParam= ruleDefaultOptionParam EOF ;
    public final EObject entryRuleDefaultOptionParam() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleDefaultOptionParam = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1909:2: (iv_ruleDefaultOptionParam= ruleDefaultOptionParam EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1910:2: iv_ruleDefaultOptionParam= ruleDefaultOptionParam EOF
            {
             newCompositeNode(grammarAccess.getDefaultOptionParamRule()); 
            pushFollow(FOLLOW_ruleDefaultOptionParam_in_entryRuleDefaultOptionParam4084);
            iv_ruleDefaultOptionParam=ruleDefaultOptionParam();

            state._fsp--;

             current =iv_ruleDefaultOptionParam; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDefaultOptionParam4094); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleDefaultOptionParam"


    // $ANTLR start "ruleDefaultOptionParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1917:1: ruleDefaultOptionParam returns [EObject current=null] : ( ( () ( (lv_site_1_0= 'site' ) ) ) | (otherlv_2= 'default' (otherlv_3= '=' )? ( (lv_defaultValue_4_0= RULE_STRING ) ) ) | (otherlv_5= 'title' (otherlv_6= '=' )? ( (lv_title_7_0= RULE_STRING ) ) ) | (otherlv_8= 'description' (otherlv_9= '=' )? ( (lv_description_10_0= RULE_STRING ) ) ) ) ;
    public final EObject ruleDefaultOptionParam() throws RecognitionException {
        EObject current = null;

        Token lv_site_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token lv_defaultValue_4_0=null;
        Token otherlv_5=null;
        Token otherlv_6=null;
        Token lv_title_7_0=null;
        Token otherlv_8=null;
        Token otherlv_9=null;
        Token lv_description_10_0=null;

         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1920:28: ( ( ( () ( (lv_site_1_0= 'site' ) ) ) | (otherlv_2= 'default' (otherlv_3= '=' )? ( (lv_defaultValue_4_0= RULE_STRING ) ) ) | (otherlv_5= 'title' (otherlv_6= '=' )? ( (lv_title_7_0= RULE_STRING ) ) ) | (otherlv_8= 'description' (otherlv_9= '=' )? ( (lv_description_10_0= RULE_STRING ) ) ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1921:1: ( ( () ( (lv_site_1_0= 'site' ) ) ) | (otherlv_2= 'default' (otherlv_3= '=' )? ( (lv_defaultValue_4_0= RULE_STRING ) ) ) | (otherlv_5= 'title' (otherlv_6= '=' )? ( (lv_title_7_0= RULE_STRING ) ) ) | (otherlv_8= 'description' (otherlv_9= '=' )? ( (lv_description_10_0= RULE_STRING ) ) ) )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1921:1: ( ( () ( (lv_site_1_0= 'site' ) ) ) | (otherlv_2= 'default' (otherlv_3= '=' )? ( (lv_defaultValue_4_0= RULE_STRING ) ) ) | (otherlv_5= 'title' (otherlv_6= '=' )? ( (lv_title_7_0= RULE_STRING ) ) ) | (otherlv_8= 'description' (otherlv_9= '=' )? ( (lv_description_10_0= RULE_STRING ) ) ) )
            int alt72=4;
            switch ( input.LA(1) ) {
            case 32:
                {
                alt72=1;
                }
                break;
            case 49:
                {
                alt72=2;
                }
                break;
            case 14:
                {
                alt72=3;
                }
                break;
            case 17:
                {
                alt72=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 72, 0, input);

                throw nvae;
            }

            switch (alt72) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1921:2: ( () ( (lv_site_1_0= 'site' ) ) )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1921:2: ( () ( (lv_site_1_0= 'site' ) ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1921:3: () ( (lv_site_1_0= 'site' ) )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1921:3: ()
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1922:5: 
                    {

                            current = forceCreateModelElement(
                                grammarAccess.getDefaultOptionParamAccess().getDefaultOptionParamAction_0_0(),
                                current);
                        

                    }

                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1927:2: ( (lv_site_1_0= 'site' ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1928:1: (lv_site_1_0= 'site' )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1928:1: (lv_site_1_0= 'site' )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1929:3: lv_site_1_0= 'site'
                    {
                    lv_site_1_0=(Token)match(input,32,FOLLOW_32_in_ruleDefaultOptionParam4147); 

                            newLeafNode(lv_site_1_0, grammarAccess.getDefaultOptionParamAccess().getSiteSiteKeyword_0_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getDefaultOptionParamRule());
                    	        }
                           		setWithLastConsumed(current, "site", true, "site");
                    	    

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1943:6: (otherlv_2= 'default' (otherlv_3= '=' )? ( (lv_defaultValue_4_0= RULE_STRING ) ) )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1943:6: (otherlv_2= 'default' (otherlv_3= '=' )? ( (lv_defaultValue_4_0= RULE_STRING ) ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1943:8: otherlv_2= 'default' (otherlv_3= '=' )? ( (lv_defaultValue_4_0= RULE_STRING ) )
                    {
                    otherlv_2=(Token)match(input,49,FOLLOW_49_in_ruleDefaultOptionParam4180); 

                        	newLeafNode(otherlv_2, grammarAccess.getDefaultOptionParamAccess().getDefaultKeyword_1_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1947:1: (otherlv_3= '=' )?
                    int alt69=2;
                    int LA69_0 = input.LA(1);

                    if ( (LA69_0==50) ) {
                        alt69=1;
                    }
                    switch (alt69) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1947:3: otherlv_3= '='
                            {
                            otherlv_3=(Token)match(input,50,FOLLOW_50_in_ruleDefaultOptionParam4193); 

                                	newLeafNode(otherlv_3, grammarAccess.getDefaultOptionParamAccess().getEqualsSignKeyword_1_1());
                                

                            }
                            break;

                    }

                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1951:3: ( (lv_defaultValue_4_0= RULE_STRING ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1952:1: (lv_defaultValue_4_0= RULE_STRING )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1952:1: (lv_defaultValue_4_0= RULE_STRING )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1953:3: lv_defaultValue_4_0= RULE_STRING
                    {
                    lv_defaultValue_4_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDefaultOptionParam4212); 

                    			newLeafNode(lv_defaultValue_4_0, grammarAccess.getDefaultOptionParamAccess().getDefaultValueSTRINGTerminalRuleCall_1_2_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getDefaultOptionParamRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"defaultValue",
                            		lv_defaultValue_4_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }


                    }
                    break;
                case 3 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1970:6: (otherlv_5= 'title' (otherlv_6= '=' )? ( (lv_title_7_0= RULE_STRING ) ) )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1970:6: (otherlv_5= 'title' (otherlv_6= '=' )? ( (lv_title_7_0= RULE_STRING ) ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1970:8: otherlv_5= 'title' (otherlv_6= '=' )? ( (lv_title_7_0= RULE_STRING ) )
                    {
                    otherlv_5=(Token)match(input,14,FOLLOW_14_in_ruleDefaultOptionParam4237); 

                        	newLeafNode(otherlv_5, grammarAccess.getDefaultOptionParamAccess().getTitleKeyword_2_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1974:1: (otherlv_6= '=' )?
                    int alt70=2;
                    int LA70_0 = input.LA(1);

                    if ( (LA70_0==50) ) {
                        alt70=1;
                    }
                    switch (alt70) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1974:3: otherlv_6= '='
                            {
                            otherlv_6=(Token)match(input,50,FOLLOW_50_in_ruleDefaultOptionParam4250); 

                                	newLeafNode(otherlv_6, grammarAccess.getDefaultOptionParamAccess().getEqualsSignKeyword_2_1());
                                

                            }
                            break;

                    }

                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1978:3: ( (lv_title_7_0= RULE_STRING ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1979:1: (lv_title_7_0= RULE_STRING )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1979:1: (lv_title_7_0= RULE_STRING )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1980:3: lv_title_7_0= RULE_STRING
                    {
                    lv_title_7_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDefaultOptionParam4269); 

                    			newLeafNode(lv_title_7_0, grammarAccess.getDefaultOptionParamAccess().getTitleSTRINGTerminalRuleCall_2_2_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getDefaultOptionParamRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"title",
                            		lv_title_7_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }


                    }
                    break;
                case 4 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1997:6: (otherlv_8= 'description' (otherlv_9= '=' )? ( (lv_description_10_0= RULE_STRING ) ) )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1997:6: (otherlv_8= 'description' (otherlv_9= '=' )? ( (lv_description_10_0= RULE_STRING ) ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:1997:8: otherlv_8= 'description' (otherlv_9= '=' )? ( (lv_description_10_0= RULE_STRING ) )
                    {
                    otherlv_8=(Token)match(input,17,FOLLOW_17_in_ruleDefaultOptionParam4294); 

                        	newLeafNode(otherlv_8, grammarAccess.getDefaultOptionParamAccess().getDescriptionKeyword_3_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2001:1: (otherlv_9= '=' )?
                    int alt71=2;
                    int LA71_0 = input.LA(1);

                    if ( (LA71_0==50) ) {
                        alt71=1;
                    }
                    switch (alt71) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2001:3: otherlv_9= '='
                            {
                            otherlv_9=(Token)match(input,50,FOLLOW_50_in_ruleDefaultOptionParam4307); 

                                	newLeafNode(otherlv_9, grammarAccess.getDefaultOptionParamAccess().getEqualsSignKeyword_3_1());
                                

                            }
                            break;

                    }

                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2005:3: ( (lv_description_10_0= RULE_STRING ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2006:1: (lv_description_10_0= RULE_STRING )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2006:1: (lv_description_10_0= RULE_STRING )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2007:3: lv_description_10_0= RULE_STRING
                    {
                    lv_description_10_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDefaultOptionParam4326); 

                    			newLeafNode(lv_description_10_0, grammarAccess.getDefaultOptionParamAccess().getDescriptionSTRINGTerminalRuleCall_3_2_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getDefaultOptionParamRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"description",
                            		lv_description_10_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDefaultOptionParam"


    // $ANTLR start "entryRuleTextParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2033:1: entryRuleTextParam returns [EObject current=null] : iv_ruleTextParam= ruleTextParam EOF ;
    public final EObject entryRuleTextParam() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleTextParam = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2034:2: (iv_ruleTextParam= ruleTextParam EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2035:2: iv_ruleTextParam= ruleTextParam EOF
            {
             newCompositeNode(grammarAccess.getTextParamRule()); 
            pushFollow(FOLLOW_ruleTextParam_in_entryRuleTextParam4370);
            iv_ruleTextParam=ruleTextParam();

            state._fsp--;

             current =iv_ruleTextParam; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTextParam4380); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleTextParam"


    // $ANTLR start "ruleTextParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2042:1: ruleTextParam returns [EObject current=null] : (this_StringParam_0= ruleStringParam | ( (lv_html_1_0= 'html' ) ) ) ;
    public final EObject ruleTextParam() throws RecognitionException {
        EObject current = null;

        Token lv_html_1_0=null;
        EObject this_StringParam_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2045:28: ( (this_StringParam_0= ruleStringParam | ( (lv_html_1_0= 'html' ) ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2046:1: (this_StringParam_0= ruleStringParam | ( (lv_html_1_0= 'html' ) ) )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2046:1: (this_StringParam_0= ruleStringParam | ( (lv_html_1_0= 'html' ) ) )
            int alt73=2;
            int LA73_0 = input.LA(1);

            if ( (LA73_0==14||LA73_0==17||LA73_0==32||LA73_0==49||(LA73_0>=52 && LA73_0<=53)) ) {
                alt73=1;
            }
            else if ( (LA73_0==51) ) {
                alt73=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 73, 0, input);

                throw nvae;
            }
            switch (alt73) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2047:5: this_StringParam_0= ruleStringParam
                    {
                     
                            newCompositeNode(grammarAccess.getTextParamAccess().getStringParamParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleStringParam_in_ruleTextParam4427);
                    this_StringParam_0=ruleStringParam();

                    state._fsp--;

                     
                            current = this_StringParam_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2056:6: ( (lv_html_1_0= 'html' ) )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2056:6: ( (lv_html_1_0= 'html' ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2057:1: (lv_html_1_0= 'html' )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2057:1: (lv_html_1_0= 'html' )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2058:3: lv_html_1_0= 'html'
                    {
                    lv_html_1_0=(Token)match(input,51,FOLLOW_51_in_ruleTextParam4450); 

                            newLeafNode(lv_html_1_0, grammarAccess.getTextParamAccess().getHtmlHtmlKeyword_1_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getTextParamRule());
                    	        }
                           		setWithLastConsumed(current, "html", true, "html");
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleTextParam"


    // $ANTLR start "entryRuleStringParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2079:1: entryRuleStringParam returns [EObject current=null] : iv_ruleStringParam= ruleStringParam EOF ;
    public final EObject entryRuleStringParam() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleStringParam = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2080:2: (iv_ruleStringParam= ruleStringParam EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2081:2: iv_ruleStringParam= ruleStringParam EOF
            {
             newCompositeNode(grammarAccess.getStringParamRule()); 
            pushFollow(FOLLOW_ruleStringParam_in_entryRuleStringParam4499);
            iv_ruleStringParam=ruleStringParam();

            state._fsp--;

             current =iv_ruleStringParam; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleStringParam4509); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleStringParam"


    // $ANTLR start "ruleStringParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2088:1: ruleStringParam returns [EObject current=null] : (this_DefaultOptionParam_0= ruleDefaultOptionParam | (otherlv_1= 'max' ( (lv_max_2_0= RULE_INT ) ) ) | (otherlv_3= 'min' ( (lv_min_4_0= RULE_INT ) ) ) ) ;
    public final EObject ruleStringParam() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token lv_max_2_0=null;
        Token otherlv_3=null;
        Token lv_min_4_0=null;
        EObject this_DefaultOptionParam_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2091:28: ( (this_DefaultOptionParam_0= ruleDefaultOptionParam | (otherlv_1= 'max' ( (lv_max_2_0= RULE_INT ) ) ) | (otherlv_3= 'min' ( (lv_min_4_0= RULE_INT ) ) ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2092:1: (this_DefaultOptionParam_0= ruleDefaultOptionParam | (otherlv_1= 'max' ( (lv_max_2_0= RULE_INT ) ) ) | (otherlv_3= 'min' ( (lv_min_4_0= RULE_INT ) ) ) )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2092:1: (this_DefaultOptionParam_0= ruleDefaultOptionParam | (otherlv_1= 'max' ( (lv_max_2_0= RULE_INT ) ) ) | (otherlv_3= 'min' ( (lv_min_4_0= RULE_INT ) ) ) )
            int alt74=3;
            switch ( input.LA(1) ) {
            case 14:
            case 17:
            case 32:
            case 49:
                {
                alt74=1;
                }
                break;
            case 52:
                {
                alt74=2;
                }
                break;
            case 53:
                {
                alt74=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 74, 0, input);

                throw nvae;
            }

            switch (alt74) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2093:5: this_DefaultOptionParam_0= ruleDefaultOptionParam
                    {
                     
                            newCompositeNode(grammarAccess.getStringParamAccess().getDefaultOptionParamParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleStringParam4556);
                    this_DefaultOptionParam_0=ruleDefaultOptionParam();

                    state._fsp--;

                     
                            current = this_DefaultOptionParam_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2102:6: (otherlv_1= 'max' ( (lv_max_2_0= RULE_INT ) ) )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2102:6: (otherlv_1= 'max' ( (lv_max_2_0= RULE_INT ) ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2102:8: otherlv_1= 'max' ( (lv_max_2_0= RULE_INT ) )
                    {
                    otherlv_1=(Token)match(input,52,FOLLOW_52_in_ruleStringParam4574); 

                        	newLeafNode(otherlv_1, grammarAccess.getStringParamAccess().getMaxKeyword_1_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2106:1: ( (lv_max_2_0= RULE_INT ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2107:1: (lv_max_2_0= RULE_INT )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2107:1: (lv_max_2_0= RULE_INT )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2108:3: lv_max_2_0= RULE_INT
                    {
                    lv_max_2_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleStringParam4591); 

                    			newLeafNode(lv_max_2_0, grammarAccess.getStringParamAccess().getMaxINTTerminalRuleCall_1_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getStringParamRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"max",
                            		lv_max_2_0, 
                            		"INT");
                    	    

                    }


                    }


                    }


                    }
                    break;
                case 3 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2125:6: (otherlv_3= 'min' ( (lv_min_4_0= RULE_INT ) ) )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2125:6: (otherlv_3= 'min' ( (lv_min_4_0= RULE_INT ) ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2125:8: otherlv_3= 'min' ( (lv_min_4_0= RULE_INT ) )
                    {
                    otherlv_3=(Token)match(input,53,FOLLOW_53_in_ruleStringParam4616); 

                        	newLeafNode(otherlv_3, grammarAccess.getStringParamAccess().getMinKeyword_2_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2129:1: ( (lv_min_4_0= RULE_INT ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2130:1: (lv_min_4_0= RULE_INT )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2130:1: (lv_min_4_0= RULE_INT )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2131:3: lv_min_4_0= RULE_INT
                    {
                    lv_min_4_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleStringParam4633); 

                    			newLeafNode(lv_min_4_0, grammarAccess.getStringParamAccess().getMinINTTerminalRuleCall_2_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getStringParamRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"min",
                            		lv_min_4_0, 
                            		"INT");
                    	    

                    }


                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleStringParam"


    // $ANTLR start "entryRuleIntegerParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2155:1: entryRuleIntegerParam returns [EObject current=null] : iv_ruleIntegerParam= ruleIntegerParam EOF ;
    public final EObject entryRuleIntegerParam() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleIntegerParam = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2156:2: (iv_ruleIntegerParam= ruleIntegerParam EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2157:2: iv_ruleIntegerParam= ruleIntegerParam EOF
            {
             newCompositeNode(grammarAccess.getIntegerParamRule()); 
            pushFollow(FOLLOW_ruleIntegerParam_in_entryRuleIntegerParam4675);
            iv_ruleIntegerParam=ruleIntegerParam();

            state._fsp--;

             current =iv_ruleIntegerParam; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleIntegerParam4685); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleIntegerParam"


    // $ANTLR start "ruleIntegerParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2164:1: ruleIntegerParam returns [EObject current=null] : this_DefaultOptionParam_0= ruleDefaultOptionParam ;
    public final EObject ruleIntegerParam() throws RecognitionException {
        EObject current = null;

        EObject this_DefaultOptionParam_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2167:28: (this_DefaultOptionParam_0= ruleDefaultOptionParam )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2169:5: this_DefaultOptionParam_0= ruleDefaultOptionParam
            {
             
                    newCompositeNode(grammarAccess.getIntegerParamAccess().getDefaultOptionParamParserRuleCall()); 
                
            pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleIntegerParam4731);
            this_DefaultOptionParam_0=ruleDefaultOptionParam();

            state._fsp--;

             
                    current = this_DefaultOptionParam_0; 
                    afterParserOrEnumRuleCall();
                

            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleIntegerParam"


    // $ANTLR start "entryRuleFloatParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2185:1: entryRuleFloatParam returns [EObject current=null] : iv_ruleFloatParam= ruleFloatParam EOF ;
    public final EObject entryRuleFloatParam() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleFloatParam = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2186:2: (iv_ruleFloatParam= ruleFloatParam EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2187:2: iv_ruleFloatParam= ruleFloatParam EOF
            {
             newCompositeNode(grammarAccess.getFloatParamRule()); 
            pushFollow(FOLLOW_ruleFloatParam_in_entryRuleFloatParam4765);
            iv_ruleFloatParam=ruleFloatParam();

            state._fsp--;

             current =iv_ruleFloatParam; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleFloatParam4775); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleFloatParam"


    // $ANTLR start "ruleFloatParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2194:1: ruleFloatParam returns [EObject current=null] : this_DefaultOptionParam_0= ruleDefaultOptionParam ;
    public final EObject ruleFloatParam() throws RecognitionException {
        EObject current = null;

        EObject this_DefaultOptionParam_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2197:28: (this_DefaultOptionParam_0= ruleDefaultOptionParam )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2199:5: this_DefaultOptionParam_0= ruleDefaultOptionParam
            {
             
                    newCompositeNode(grammarAccess.getFloatParamAccess().getDefaultOptionParamParserRuleCall()); 
                
            pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleFloatParam4821);
            this_DefaultOptionParam_0=ruleDefaultOptionParam();

            state._fsp--;

             
                    current = this_DefaultOptionParam_0; 
                    afterParserOrEnumRuleCall();
                

            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleFloatParam"


    // $ANTLR start "entryRuleURLParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2217:1: entryRuleURLParam returns [EObject current=null] : iv_ruleURLParam= ruleURLParam EOF ;
    public final EObject entryRuleURLParam() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleURLParam = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2218:2: (iv_ruleURLParam= ruleURLParam EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2219:2: iv_ruleURLParam= ruleURLParam EOF
            {
             newCompositeNode(grammarAccess.getURLParamRule()); 
            pushFollow(FOLLOW_ruleURLParam_in_entryRuleURLParam4857);
            iv_ruleURLParam=ruleURLParam();

            state._fsp--;

             current =iv_ruleURLParam; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleURLParam4867); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleURLParam"


    // $ANTLR start "ruleURLParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2226:1: ruleURLParam returns [EObject current=null] : this_DefaultOptionParam_0= ruleDefaultOptionParam ;
    public final EObject ruleURLParam() throws RecognitionException {
        EObject current = null;

        EObject this_DefaultOptionParam_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2229:28: (this_DefaultOptionParam_0= ruleDefaultOptionParam )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2231:5: this_DefaultOptionParam_0= ruleDefaultOptionParam
            {
             
                    newCompositeNode(grammarAccess.getURLParamAccess().getDefaultOptionParamParserRuleCall()); 
                
            pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleURLParam4913);
            this_DefaultOptionParam_0=ruleDefaultOptionParam();

            state._fsp--;

             
                    current = this_DefaultOptionParam_0; 
                    afterParserOrEnumRuleCall();
                

            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleURLParam"


    // $ANTLR start "entryRuleBooleanParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2247:1: entryRuleBooleanParam returns [EObject current=null] : iv_ruleBooleanParam= ruleBooleanParam EOF ;
    public final EObject entryRuleBooleanParam() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleBooleanParam = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2248:2: (iv_ruleBooleanParam= ruleBooleanParam EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2249:2: iv_ruleBooleanParam= ruleBooleanParam EOF
            {
             newCompositeNode(grammarAccess.getBooleanParamRule()); 
            pushFollow(FOLLOW_ruleBooleanParam_in_entryRuleBooleanParam4947);
            iv_ruleBooleanParam=ruleBooleanParam();

            state._fsp--;

             current =iv_ruleBooleanParam; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleBooleanParam4957); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleBooleanParam"


    // $ANTLR start "ruleBooleanParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2256:1: ruleBooleanParam returns [EObject current=null] : this_DefaultOptionParam_0= ruleDefaultOptionParam ;
    public final EObject ruleBooleanParam() throws RecognitionException {
        EObject current = null;

        EObject this_DefaultOptionParam_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2259:28: (this_DefaultOptionParam_0= ruleDefaultOptionParam )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2261:5: this_DefaultOptionParam_0= ruleDefaultOptionParam
            {
             
                    newCompositeNode(grammarAccess.getBooleanParamAccess().getDefaultOptionParamParserRuleCall()); 
                
            pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleBooleanParam5003);
            this_DefaultOptionParam_0=ruleDefaultOptionParam();

            state._fsp--;

             
                    current = this_DefaultOptionParam_0; 
                    afterParserOrEnumRuleCall();
                

            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleBooleanParam"


    // $ANTLR start "entryRuleDateParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2277:1: entryRuleDateParam returns [EObject current=null] : iv_ruleDateParam= ruleDateParam EOF ;
    public final EObject entryRuleDateParam() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleDateParam = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2278:2: (iv_ruleDateParam= ruleDateParam EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2279:2: iv_ruleDateParam= ruleDateParam EOF
            {
             newCompositeNode(grammarAccess.getDateParamRule()); 
            pushFollow(FOLLOW_ruleDateParam_in_entryRuleDateParam5037);
            iv_ruleDateParam=ruleDateParam();

            state._fsp--;

             current =iv_ruleDateParam; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDateParam5047); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleDateParam"


    // $ANTLR start "ruleDateParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2286:1: ruleDateParam returns [EObject current=null] : this_DefaultOptionParam_0= ruleDefaultOptionParam ;
    public final EObject ruleDateParam() throws RecognitionException {
        EObject current = null;

        EObject this_DefaultOptionParam_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2289:28: (this_DefaultOptionParam_0= ruleDefaultOptionParam )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2291:5: this_DefaultOptionParam_0= ruleDefaultOptionParam
            {
             
                    newCompositeNode(grammarAccess.getDateParamAccess().getDefaultOptionParamParserRuleCall()); 
                
            pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleDateParam5093);
            this_DefaultOptionParam_0=ruleDefaultOptionParam();

            state._fsp--;

             
                    current = this_DefaultOptionParam_0; 
                    afterParserOrEnumRuleCall();
                

            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDateParam"


    // $ANTLR start "entryRuleColourParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2307:1: entryRuleColourParam returns [EObject current=null] : iv_ruleColourParam= ruleColourParam EOF ;
    public final EObject entryRuleColourParam() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleColourParam = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2308:2: (iv_ruleColourParam= ruleColourParam EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2309:2: iv_ruleColourParam= ruleColourParam EOF
            {
             newCompositeNode(grammarAccess.getColourParamRule()); 
            pushFollow(FOLLOW_ruleColourParam_in_entryRuleColourParam5127);
            iv_ruleColourParam=ruleColourParam();

            state._fsp--;

             current =iv_ruleColourParam; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleColourParam5137); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleColourParam"


    // $ANTLR start "ruleColourParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2316:1: ruleColourParam returns [EObject current=null] : this_DefaultOptionParam_0= ruleDefaultOptionParam ;
    public final EObject ruleColourParam() throws RecognitionException {
        EObject current = null;

        EObject this_DefaultOptionParam_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2319:28: (this_DefaultOptionParam_0= ruleDefaultOptionParam )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2321:5: this_DefaultOptionParam_0= ruleDefaultOptionParam
            {
             
                    newCompositeNode(grammarAccess.getColourParamAccess().getDefaultOptionParamParserRuleCall()); 
                
            pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleColourParam5183);
            this_DefaultOptionParam_0=ruleDefaultOptionParam();

            state._fsp--;

             
                    current = this_DefaultOptionParam_0; 
                    afterParserOrEnumRuleCall();
                

            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleColourParam"


    // $ANTLR start "entryRuleSelectParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2337:1: entryRuleSelectParam returns [EObject current=null] : iv_ruleSelectParam= ruleSelectParam EOF ;
    public final EObject entryRuleSelectParam() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSelectParam = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2338:2: (iv_ruleSelectParam= ruleSelectParam EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2339:2: iv_ruleSelectParam= ruleSelectParam EOF
            {
             newCompositeNode(grammarAccess.getSelectParamRule()); 
            pushFollow(FOLLOW_ruleSelectParam_in_entryRuleSelectParam5217);
            iv_ruleSelectParam=ruleSelectParam();

            state._fsp--;

             current =iv_ruleSelectParam; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSelectParam5227); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSelectParam"


    // $ANTLR start "ruleSelectParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2346:1: ruleSelectParam returns [EObject current=null] : (this_DefaultOptionParam_0= ruleDefaultOptionParam | ( (lv_select_1_0= ruleChoiceFn ) ) ) ;
    public final EObject ruleSelectParam() throws RecognitionException {
        EObject current = null;

        EObject this_DefaultOptionParam_0 = null;

        EObject lv_select_1_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2349:28: ( (this_DefaultOptionParam_0= ruleDefaultOptionParam | ( (lv_select_1_0= ruleChoiceFn ) ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2350:1: (this_DefaultOptionParam_0= ruleDefaultOptionParam | ( (lv_select_1_0= ruleChoiceFn ) ) )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2350:1: (this_DefaultOptionParam_0= ruleDefaultOptionParam | ( (lv_select_1_0= ruleChoiceFn ) ) )
            int alt75=2;
            int LA75_0 = input.LA(1);

            if ( (LA75_0==14||LA75_0==17||LA75_0==32||LA75_0==49) ) {
                alt75=1;
            }
            else if ( (LA75_0==RULE_ID) ) {
                alt75=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 75, 0, input);

                throw nvae;
            }
            switch (alt75) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2351:5: this_DefaultOptionParam_0= ruleDefaultOptionParam
                    {
                     
                            newCompositeNode(grammarAccess.getSelectParamAccess().getDefaultOptionParamParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleSelectParam5274);
                    this_DefaultOptionParam_0=ruleDefaultOptionParam();

                    state._fsp--;

                     
                            current = this_DefaultOptionParam_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2360:6: ( (lv_select_1_0= ruleChoiceFn ) )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2360:6: ( (lv_select_1_0= ruleChoiceFn ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2361:1: (lv_select_1_0= ruleChoiceFn )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2361:1: (lv_select_1_0= ruleChoiceFn )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2362:3: lv_select_1_0= ruleChoiceFn
                    {
                     
                    	        newCompositeNode(grammarAccess.getSelectParamAccess().getSelectChoiceFnParserRuleCall_1_0()); 
                    	    
                    pushFollow(FOLLOW_ruleChoiceFn_in_ruleSelectParam5300);
                    lv_select_1_0=ruleChoiceFn();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getSelectParamRule());
                    	        }
                           		set(
                           			current, 
                           			"select",
                            		lv_select_1_0, 
                            		"ChoiceFn");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSelectParam"


    // $ANTLR start "entryRuleChoiceParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2386:1: entryRuleChoiceParam returns [EObject current=null] : iv_ruleChoiceParam= ruleChoiceParam EOF ;
    public final EObject entryRuleChoiceParam() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleChoiceParam = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2387:2: (iv_ruleChoiceParam= ruleChoiceParam EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2388:2: iv_ruleChoiceParam= ruleChoiceParam EOF
            {
             newCompositeNode(grammarAccess.getChoiceParamRule()); 
            pushFollow(FOLLOW_ruleChoiceParam_in_entryRuleChoiceParam5336);
            iv_ruleChoiceParam=ruleChoiceParam();

            state._fsp--;

             current =iv_ruleChoiceParam; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleChoiceParam5346); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleChoiceParam"


    // $ANTLR start "ruleChoiceParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2395:1: ruleChoiceParam returns [EObject current=null] : (this_DefaultOptionParam_0= ruleDefaultOptionParam | ( (lv_choice_1_0= ruleChoiceFn ) ) ) ;
    public final EObject ruleChoiceParam() throws RecognitionException {
        EObject current = null;

        EObject this_DefaultOptionParam_0 = null;

        EObject lv_choice_1_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2398:28: ( (this_DefaultOptionParam_0= ruleDefaultOptionParam | ( (lv_choice_1_0= ruleChoiceFn ) ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2399:1: (this_DefaultOptionParam_0= ruleDefaultOptionParam | ( (lv_choice_1_0= ruleChoiceFn ) ) )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2399:1: (this_DefaultOptionParam_0= ruleDefaultOptionParam | ( (lv_choice_1_0= ruleChoiceFn ) ) )
            int alt76=2;
            int LA76_0 = input.LA(1);

            if ( (LA76_0==14||LA76_0==17||LA76_0==32||LA76_0==49) ) {
                alt76=1;
            }
            else if ( (LA76_0==RULE_ID) ) {
                alt76=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 76, 0, input);

                throw nvae;
            }
            switch (alt76) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2400:5: this_DefaultOptionParam_0= ruleDefaultOptionParam
                    {
                     
                            newCompositeNode(grammarAccess.getChoiceParamAccess().getDefaultOptionParamParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleChoiceParam5393);
                    this_DefaultOptionParam_0=ruleDefaultOptionParam();

                    state._fsp--;

                     
                            current = this_DefaultOptionParam_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2409:6: ( (lv_choice_1_0= ruleChoiceFn ) )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2409:6: ( (lv_choice_1_0= ruleChoiceFn ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2410:1: (lv_choice_1_0= ruleChoiceFn )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2410:1: (lv_choice_1_0= ruleChoiceFn )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2411:3: lv_choice_1_0= ruleChoiceFn
                    {
                     
                    	        newCompositeNode(grammarAccess.getChoiceParamAccess().getChoiceChoiceFnParserRuleCall_1_0()); 
                    	    
                    pushFollow(FOLLOW_ruleChoiceFn_in_ruleChoiceParam5419);
                    lv_choice_1_0=ruleChoiceFn();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getChoiceParamRule());
                    	        }
                           		set(
                           			current, 
                           			"choice",
                            		lv_choice_1_0, 
                            		"ChoiceFn");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleChoiceParam"


    // $ANTLR start "entryRuleCustomParamFn"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2435:1: entryRuleCustomParamFn returns [EObject current=null] : iv_ruleCustomParamFn= ruleCustomParamFn EOF ;
    public final EObject entryRuleCustomParamFn() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleCustomParamFn = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2436:2: (iv_ruleCustomParamFn= ruleCustomParamFn EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2437:2: iv_ruleCustomParamFn= ruleCustomParamFn EOF
            {
             newCompositeNode(grammarAccess.getCustomParamFnRule()); 
            pushFollow(FOLLOW_ruleCustomParamFn_in_entryRuleCustomParamFn5455);
            iv_ruleCustomParamFn=ruleCustomParamFn();

            state._fsp--;

             current =iv_ruleCustomParamFn; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleCustomParamFn5465); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleCustomParamFn"


    // $ANTLR start "ruleCustomParamFn"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2444:1: ruleCustomParamFn returns [EObject current=null] : ( ( (lv_id_0_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= RULE_STRING ) ) ) ;
    public final EObject ruleCustomParamFn() throws RecognitionException {
        EObject current = null;

        Token lv_id_0_0=null;
        Token otherlv_1=null;
        Token lv_value_2_0=null;

         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2447:28: ( ( ( (lv_id_0_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= RULE_STRING ) ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2448:1: ( ( (lv_id_0_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= RULE_STRING ) ) )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2448:1: ( ( (lv_id_0_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= RULE_STRING ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2448:2: ( (lv_id_0_0= RULE_ID ) ) otherlv_1= '=' ( (lv_value_2_0= RULE_STRING ) )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2448:2: ( (lv_id_0_0= RULE_ID ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2449:1: (lv_id_0_0= RULE_ID )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2449:1: (lv_id_0_0= RULE_ID )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2450:3: lv_id_0_0= RULE_ID
            {
            lv_id_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleCustomParamFn5507); 

            			newLeafNode(lv_id_0_0, grammarAccess.getCustomParamFnAccess().getIdIDTerminalRuleCall_0_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getCustomParamFnRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"id",
                    		lv_id_0_0, 
                    		"ID");
            	    

            }


            }

            otherlv_1=(Token)match(input,50,FOLLOW_50_in_ruleCustomParamFn5524); 

                	newLeafNode(otherlv_1, grammarAccess.getCustomParamFnAccess().getEqualsSignKeyword_1());
                
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2470:1: ( (lv_value_2_0= RULE_STRING ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2471:1: (lv_value_2_0= RULE_STRING )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2471:1: (lv_value_2_0= RULE_STRING )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2472:3: lv_value_2_0= RULE_STRING
            {
            lv_value_2_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleCustomParamFn5541); 

            			newLeafNode(lv_value_2_0, grammarAccess.getCustomParamFnAccess().getValueSTRINGTerminalRuleCall_2_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getCustomParamFnRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_2_0, 
                    		"STRING");
            	    

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleCustomParamFn"


    // $ANTLR start "entryRuleCustomParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2496:1: entryRuleCustomParam returns [EObject current=null] : iv_ruleCustomParam= ruleCustomParam EOF ;
    public final EObject entryRuleCustomParam() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleCustomParam = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2497:2: (iv_ruleCustomParam= ruleCustomParam EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2498:2: iv_ruleCustomParam= ruleCustomParam EOF
            {
             newCompositeNode(grammarAccess.getCustomParamRule()); 
            pushFollow(FOLLOW_ruleCustomParam_in_entryRuleCustomParam5582);
            iv_ruleCustomParam=ruleCustomParam();

            state._fsp--;

             current =iv_ruleCustomParam; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleCustomParam5592); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleCustomParam"


    // $ANTLR start "ruleCustomParam"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2505:1: ruleCustomParam returns [EObject current=null] : (this_DefaultOptionParam_0= ruleDefaultOptionParam | (otherlv_1= 'className' ( (lv_className_2_0= RULE_STRING ) ) ) | ( (lv_customSettings_3_0= ruleCustomParamFn ) ) ) ;
    public final EObject ruleCustomParam() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token lv_className_2_0=null;
        EObject this_DefaultOptionParam_0 = null;

        EObject lv_customSettings_3_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2508:28: ( (this_DefaultOptionParam_0= ruleDefaultOptionParam | (otherlv_1= 'className' ( (lv_className_2_0= RULE_STRING ) ) ) | ( (lv_customSettings_3_0= ruleCustomParamFn ) ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2509:1: (this_DefaultOptionParam_0= ruleDefaultOptionParam | (otherlv_1= 'className' ( (lv_className_2_0= RULE_STRING ) ) ) | ( (lv_customSettings_3_0= ruleCustomParamFn ) ) )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2509:1: (this_DefaultOptionParam_0= ruleDefaultOptionParam | (otherlv_1= 'className' ( (lv_className_2_0= RULE_STRING ) ) ) | ( (lv_customSettings_3_0= ruleCustomParamFn ) ) )
            int alt77=3;
            switch ( input.LA(1) ) {
            case 14:
            case 17:
            case 32:
            case 49:
                {
                alt77=1;
                }
                break;
            case 54:
                {
                alt77=2;
                }
                break;
            case RULE_ID:
                {
                alt77=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 77, 0, input);

                throw nvae;
            }

            switch (alt77) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2510:5: this_DefaultOptionParam_0= ruleDefaultOptionParam
                    {
                     
                            newCompositeNode(grammarAccess.getCustomParamAccess().getDefaultOptionParamParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleDefaultOptionParam_in_ruleCustomParam5639);
                    this_DefaultOptionParam_0=ruleDefaultOptionParam();

                    state._fsp--;

                     
                            current = this_DefaultOptionParam_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2519:6: (otherlv_1= 'className' ( (lv_className_2_0= RULE_STRING ) ) )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2519:6: (otherlv_1= 'className' ( (lv_className_2_0= RULE_STRING ) ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2519:8: otherlv_1= 'className' ( (lv_className_2_0= RULE_STRING ) )
                    {
                    otherlv_1=(Token)match(input,54,FOLLOW_54_in_ruleCustomParam5657); 

                        	newLeafNode(otherlv_1, grammarAccess.getCustomParamAccess().getClassNameKeyword_1_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2523:1: ( (lv_className_2_0= RULE_STRING ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2524:1: (lv_className_2_0= RULE_STRING )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2524:1: (lv_className_2_0= RULE_STRING )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2525:3: lv_className_2_0= RULE_STRING
                    {
                    lv_className_2_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleCustomParam5674); 

                    			newLeafNode(lv_className_2_0, grammarAccess.getCustomParamAccess().getClassNameSTRINGTerminalRuleCall_1_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCustomParamRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"className",
                            		lv_className_2_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }


                    }
                    break;
                case 3 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2542:6: ( (lv_customSettings_3_0= ruleCustomParamFn ) )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2542:6: ( (lv_customSettings_3_0= ruleCustomParamFn ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2543:1: (lv_customSettings_3_0= ruleCustomParamFn )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2543:1: (lv_customSettings_3_0= ruleCustomParamFn )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2544:3: lv_customSettings_3_0= ruleCustomParamFn
                    {
                     
                    	        newCompositeNode(grammarAccess.getCustomParamAccess().getCustomSettingsCustomParamFnParserRuleCall_2_0()); 
                    	    
                    pushFollow(FOLLOW_ruleCustomParamFn_in_ruleCustomParam5707);
                    lv_customSettings_3_0=ruleCustomParamFn();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getCustomParamRule());
                    	        }
                           		add(
                           			current, 
                           			"customSettings",
                            		lv_customSettings_3_0, 
                            		"CustomParamFn");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleCustomParam"


    // $ANTLR start "entryRuleChoiceFn"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2570:1: entryRuleChoiceFn returns [EObject current=null] : iv_ruleChoiceFn= ruleChoiceFn EOF ;
    public final EObject entryRuleChoiceFn() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleChoiceFn = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2571:2: (iv_ruleChoiceFn= ruleChoiceFn EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2572:2: iv_ruleChoiceFn= ruleChoiceFn EOF
            {
             newCompositeNode(grammarAccess.getChoiceFnRule()); 
            pushFollow(FOLLOW_ruleChoiceFn_in_entryRuleChoiceFn5745);
            iv_ruleChoiceFn=ruleChoiceFn();

            state._fsp--;

             current =iv_ruleChoiceFn; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleChoiceFn5755); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleChoiceFn"


    // $ANTLR start "ruleChoiceFn"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2579:1: ruleChoiceFn returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) ( (otherlv_1= '=' )? ( (lv_title_2_0= RULE_STRING ) ) )? ) ;
    public final EObject ruleChoiceFn() throws RecognitionException {
        EObject current = null;

        Token lv_name_0_0=null;
        Token otherlv_1=null;
        Token lv_title_2_0=null;

         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2582:28: ( ( ( (lv_name_0_0= RULE_ID ) ) ( (otherlv_1= '=' )? ( (lv_title_2_0= RULE_STRING ) ) )? ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2583:1: ( ( (lv_name_0_0= RULE_ID ) ) ( (otherlv_1= '=' )? ( (lv_title_2_0= RULE_STRING ) ) )? )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2583:1: ( ( (lv_name_0_0= RULE_ID ) ) ( (otherlv_1= '=' )? ( (lv_title_2_0= RULE_STRING ) ) )? )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2583:2: ( (lv_name_0_0= RULE_ID ) ) ( (otherlv_1= '=' )? ( (lv_title_2_0= RULE_STRING ) ) )?
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2583:2: ( (lv_name_0_0= RULE_ID ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2584:1: (lv_name_0_0= RULE_ID )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2584:1: (lv_name_0_0= RULE_ID )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2585:3: lv_name_0_0= RULE_ID
            {
            lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleChoiceFn5797); 

            			newLeafNode(lv_name_0_0, grammarAccess.getChoiceFnAccess().getNameIDTerminalRuleCall_0_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getChoiceFnRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_0_0, 
                    		"ID");
            	    

            }


            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2601:2: ( (otherlv_1= '=' )? ( (lv_title_2_0= RULE_STRING ) ) )?
            int alt79=2;
            int LA79_0 = input.LA(1);

            if ( (LA79_0==RULE_STRING||LA79_0==50) ) {
                alt79=1;
            }
            switch (alt79) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2601:3: (otherlv_1= '=' )? ( (lv_title_2_0= RULE_STRING ) )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2601:3: (otherlv_1= '=' )?
                    int alt78=2;
                    int LA78_0 = input.LA(1);

                    if ( (LA78_0==50) ) {
                        alt78=1;
                    }
                    switch (alt78) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2601:5: otherlv_1= '='
                            {
                            otherlv_1=(Token)match(input,50,FOLLOW_50_in_ruleChoiceFn5816); 

                                	newLeafNode(otherlv_1, grammarAccess.getChoiceFnAccess().getEqualsSignKeyword_1_0());
                                

                            }
                            break;

                    }

                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2605:3: ( (lv_title_2_0= RULE_STRING ) )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2606:1: (lv_title_2_0= RULE_STRING )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2606:1: (lv_title_2_0= RULE_STRING )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2607:3: lv_title_2_0= RULE_STRING
                    {
                    lv_title_2_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleChoiceFn5835); 

                    			newLeafNode(lv_title_2_0, grammarAccess.getChoiceFnAccess().getTitleSTRINGTerminalRuleCall_1_1_0()); 
                    		

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getChoiceFnRule());
                    	        }
                           		setWithLastConsumed(
                           			current, 
                           			"title",
                            		lv_title_2_0, 
                            		"STRING");
                    	    

                    }


                    }


                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleChoiceFn"


    // $ANTLR start "entryRuleOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2631:1: entryRuleOption returns [EObject current=null] : iv_ruleOption= ruleOption EOF ;
    public final EObject entryRuleOption() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleOption = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2632:2: (iv_ruleOption= ruleOption EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2633:2: iv_ruleOption= ruleOption EOF
            {
             newCompositeNode(grammarAccess.getOptionRule()); 
            pushFollow(FOLLOW_ruleOption_in_entryRuleOption5878);
            iv_ruleOption=ruleOption();

            state._fsp--;

             current =iv_ruleOption; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleOption5888); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleOption"


    // $ANTLR start "ruleOption"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2640:1: ruleOption returns [EObject current=null] : ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleOptionType ) ) ) ;
    public final EObject ruleOption() throws RecognitionException {
        EObject current = null;

        Token lv_name_0_0=null;
        EObject lv_type_1_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2643:28: ( ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleOptionType ) ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2644:1: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleOptionType ) ) )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2644:1: ( ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleOptionType ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2644:2: ( (lv_name_0_0= RULE_ID ) ) ( (lv_type_1_0= ruleOptionType ) )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2644:2: ( (lv_name_0_0= RULE_ID ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2645:1: (lv_name_0_0= RULE_ID )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2645:1: (lv_name_0_0= RULE_ID )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2646:3: lv_name_0_0= RULE_ID
            {
            lv_name_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleOption5930); 

            			newLeafNode(lv_name_0_0, grammarAccess.getOptionAccess().getNameIDTerminalRuleCall_0_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getOptionRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_0_0, 
                    		"ID");
            	    

            }


            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2662:2: ( (lv_type_1_0= ruleOptionType ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2663:1: (lv_type_1_0= ruleOptionType )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2663:1: (lv_type_1_0= ruleOptionType )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2664:3: lv_type_1_0= ruleOptionType
            {
             
            	        newCompositeNode(grammarAccess.getOptionAccess().getTypeOptionTypeParserRuleCall_1_0()); 
            	    
            pushFollow(FOLLOW_ruleOptionType_in_ruleOption5956);
            lv_type_1_0=ruleOptionType();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getOptionRule());
            	        }
                   		set(
                   			current, 
                   			"type",
                    		lv_type_1_0, 
                    		"OptionType");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleOption"


    // $ANTLR start "entryRuleFunctionArgumentList"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2688:1: entryRuleFunctionArgumentList returns [EObject current=null] : iv_ruleFunctionArgumentList= ruleFunctionArgumentList EOF ;
    public final EObject entryRuleFunctionArgumentList() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleFunctionArgumentList = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2689:2: (iv_ruleFunctionArgumentList= ruleFunctionArgumentList EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2690:2: iv_ruleFunctionArgumentList= ruleFunctionArgumentList EOF
            {
             newCompositeNode(grammarAccess.getFunctionArgumentListRule()); 
            pushFollow(FOLLOW_ruleFunctionArgumentList_in_entryRuleFunctionArgumentList5992);
            iv_ruleFunctionArgumentList=ruleFunctionArgumentList();

            state._fsp--;

             current =iv_ruleFunctionArgumentList; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleFunctionArgumentList6002); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleFunctionArgumentList"


    // $ANTLR start "ruleFunctionArgumentList"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2697:1: ruleFunctionArgumentList returns [EObject current=null] : ( ( (lv_args_0_0= RULE_ID ) ) (otherlv_1= ',' ( (lv_args_2_0= RULE_ID ) ) )* ) ;
    public final EObject ruleFunctionArgumentList() throws RecognitionException {
        EObject current = null;

        Token lv_args_0_0=null;
        Token otherlv_1=null;
        Token lv_args_2_0=null;

         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2700:28: ( ( ( (lv_args_0_0= RULE_ID ) ) (otherlv_1= ',' ( (lv_args_2_0= RULE_ID ) ) )* ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2701:1: ( ( (lv_args_0_0= RULE_ID ) ) (otherlv_1= ',' ( (lv_args_2_0= RULE_ID ) ) )* )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2701:1: ( ( (lv_args_0_0= RULE_ID ) ) (otherlv_1= ',' ( (lv_args_2_0= RULE_ID ) ) )* )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2701:2: ( (lv_args_0_0= RULE_ID ) ) (otherlv_1= ',' ( (lv_args_2_0= RULE_ID ) ) )*
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2701:2: ( (lv_args_0_0= RULE_ID ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2702:1: (lv_args_0_0= RULE_ID )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2702:1: (lv_args_0_0= RULE_ID )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2703:3: lv_args_0_0= RULE_ID
            {
            lv_args_0_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleFunctionArgumentList6044); 

            			newLeafNode(lv_args_0_0, grammarAccess.getFunctionArgumentListAccess().getArgsIDTerminalRuleCall_0_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getFunctionArgumentListRule());
            	        }
                   		addWithLastConsumed(
                   			current, 
                   			"args",
                    		lv_args_0_0, 
                    		"ID");
            	    

            }


            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2719:2: (otherlv_1= ',' ( (lv_args_2_0= RULE_ID ) ) )*
            loop80:
            do {
                int alt80=2;
                int LA80_0 = input.LA(1);

                if ( (LA80_0==47) ) {
                    alt80=1;
                }


                switch (alt80) {
            	case 1 :
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2719:4: otherlv_1= ',' ( (lv_args_2_0= RULE_ID ) )
            	    {
            	    otherlv_1=(Token)match(input,47,FOLLOW_47_in_ruleFunctionArgumentList6062); 

            	        	newLeafNode(otherlv_1, grammarAccess.getFunctionArgumentListAccess().getCommaKeyword_1_0());
            	        
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2723:1: ( (lv_args_2_0= RULE_ID ) )
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2724:1: (lv_args_2_0= RULE_ID )
            	    {
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2724:1: (lv_args_2_0= RULE_ID )
            	    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2725:3: lv_args_2_0= RULE_ID
            	    {
            	    lv_args_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleFunctionArgumentList6079); 

            	    			newLeafNode(lv_args_2_0, grammarAccess.getFunctionArgumentListAccess().getArgsIDTerminalRuleCall_1_1_0()); 
            	    		

            	    	        if (current==null) {
            	    	            current = createModelElement(grammarAccess.getFunctionArgumentListRule());
            	    	        }
            	           		addWithLastConsumed(
            	           			current, 
            	           			"args",
            	            		lv_args_2_0, 
            	            		"ID");
            	    	    

            	    }


            	    }


            	    }
            	    break;

            	default :
            	    break loop80;
                }
            } while (true);


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleFunctionArgumentList"


    // $ANTLR start "entryRuleActionType"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2749:1: entryRuleActionType returns [EObject current=null] : iv_ruleActionType= ruleActionType EOF ;
    public final EObject entryRuleActionType() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleActionType = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2750:2: (iv_ruleActionType= ruleActionType EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2751:2: iv_ruleActionType= ruleActionType EOF
            {
             newCompositeNode(grammarAccess.getActionTypeRule()); 
            pushFollow(FOLLOW_ruleActionType_in_entryRuleActionType6122);
            iv_ruleActionType=ruleActionType();

            state._fsp--;

             current =iv_ruleActionType; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleActionType6132); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleActionType"


    // $ANTLR start "ruleActionType"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2758:1: ruleActionType returns [EObject current=null] : (otherlv_0= 'action' ( (lv_action_1_0= RULE_STRING ) ) ( (lv_priority_2_0= RULE_INT ) ) ) ;
    public final EObject ruleActionType() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_action_1_0=null;
        Token lv_priority_2_0=null;

         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2761:28: ( (otherlv_0= 'action' ( (lv_action_1_0= RULE_STRING ) ) ( (lv_priority_2_0= RULE_INT ) ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2762:1: (otherlv_0= 'action' ( (lv_action_1_0= RULE_STRING ) ) ( (lv_priority_2_0= RULE_INT ) ) )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2762:1: (otherlv_0= 'action' ( (lv_action_1_0= RULE_STRING ) ) ( (lv_priority_2_0= RULE_INT ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2762:3: otherlv_0= 'action' ( (lv_action_1_0= RULE_STRING ) ) ( (lv_priority_2_0= RULE_INT ) )
            {
            otherlv_0=(Token)match(input,55,FOLLOW_55_in_ruleActionType6169); 

                	newLeafNode(otherlv_0, grammarAccess.getActionTypeAccess().getActionKeyword_0());
                
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2766:1: ( (lv_action_1_0= RULE_STRING ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2767:1: (lv_action_1_0= RULE_STRING )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2767:1: (lv_action_1_0= RULE_STRING )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2768:3: lv_action_1_0= RULE_STRING
            {
            lv_action_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleActionType6186); 

            			newLeafNode(lv_action_1_0, grammarAccess.getActionTypeAccess().getActionSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getActionTypeRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"action",
                    		lv_action_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2784:2: ( (lv_priority_2_0= RULE_INT ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2785:1: (lv_priority_2_0= RULE_INT )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2785:1: (lv_priority_2_0= RULE_INT )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2786:3: lv_priority_2_0= RULE_INT
            {
            lv_priority_2_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleActionType6208); 

            			newLeafNode(lv_priority_2_0, grammarAccess.getActionTypeAccess().getPriorityINTTerminalRuleCall_2_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getActionTypeRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"priority",
                    		lv_priority_2_0, 
                    		"INT");
            	    

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleActionType"


    // $ANTLR start "entryRuleFilterType"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2810:1: entryRuleFilterType returns [EObject current=null] : iv_ruleFilterType= ruleFilterType EOF ;
    public final EObject entryRuleFilterType() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleFilterType = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2811:2: (iv_ruleFilterType= ruleFilterType EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2812:2: iv_ruleFilterType= ruleFilterType EOF
            {
             newCompositeNode(grammarAccess.getFilterTypeRule()); 
            pushFollow(FOLLOW_ruleFilterType_in_entryRuleFilterType6249);
            iv_ruleFilterType=ruleFilterType();

            state._fsp--;

             current =iv_ruleFilterType; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleFilterType6259); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleFilterType"


    // $ANTLR start "ruleFilterType"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2819:1: ruleFilterType returns [EObject current=null] : (otherlv_0= 'filter' ( (lv_filter_1_0= RULE_STRING ) ) ( (lv_priority_2_0= RULE_INT ) ) ) ;
    public final EObject ruleFilterType() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_filter_1_0=null;
        Token lv_priority_2_0=null;

         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2822:28: ( (otherlv_0= 'filter' ( (lv_filter_1_0= RULE_STRING ) ) ( (lv_priority_2_0= RULE_INT ) ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2823:1: (otherlv_0= 'filter' ( (lv_filter_1_0= RULE_STRING ) ) ( (lv_priority_2_0= RULE_INT ) ) )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2823:1: (otherlv_0= 'filter' ( (lv_filter_1_0= RULE_STRING ) ) ( (lv_priority_2_0= RULE_INT ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2823:3: otherlv_0= 'filter' ( (lv_filter_1_0= RULE_STRING ) ) ( (lv_priority_2_0= RULE_INT ) )
            {
            otherlv_0=(Token)match(input,56,FOLLOW_56_in_ruleFilterType6296); 

                	newLeafNode(otherlv_0, grammarAccess.getFilterTypeAccess().getFilterKeyword_0());
                
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2827:1: ( (lv_filter_1_0= RULE_STRING ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2828:1: (lv_filter_1_0= RULE_STRING )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2828:1: (lv_filter_1_0= RULE_STRING )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2829:3: lv_filter_1_0= RULE_STRING
            {
            lv_filter_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleFilterType6313); 

            			newLeafNode(lv_filter_1_0, grammarAccess.getFilterTypeAccess().getFilterSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getFilterTypeRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"filter",
                    		lv_filter_1_0, 
                    		"STRING");
            	    

            }


            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2845:2: ( (lv_priority_2_0= RULE_INT ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2846:1: (lv_priority_2_0= RULE_INT )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2846:1: (lv_priority_2_0= RULE_INT )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2847:3: lv_priority_2_0= RULE_INT
            {
            lv_priority_2_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleFilterType6335); 

            			newLeafNode(lv_priority_2_0, grammarAccess.getFilterTypeAccess().getPriorityINTTerminalRuleCall_2_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getFilterTypeRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"priority",
                    		lv_priority_2_0, 
                    		"INT");
            	    

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleFilterType"


    // $ANTLR start "entryRuleShortcodeType"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2871:1: entryRuleShortcodeType returns [EObject current=null] : iv_ruleShortcodeType= ruleShortcodeType EOF ;
    public final EObject entryRuleShortcodeType() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleShortcodeType = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2872:2: (iv_ruleShortcodeType= ruleShortcodeType EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2873:2: iv_ruleShortcodeType= ruleShortcodeType EOF
            {
             newCompositeNode(grammarAccess.getShortcodeTypeRule()); 
            pushFollow(FOLLOW_ruleShortcodeType_in_entryRuleShortcodeType6376);
            iv_ruleShortcodeType=ruleShortcodeType();

            state._fsp--;

             current =iv_ruleShortcodeType; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleShortcodeType6386); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleShortcodeType"


    // $ANTLR start "ruleShortcodeType"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2880:1: ruleShortcodeType returns [EObject current=null] : (otherlv_0= 'short' ( (lv_code_1_0= RULE_STRING ) ) ) ;
    public final EObject ruleShortcodeType() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_code_1_0=null;

         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2883:28: ( (otherlv_0= 'short' ( (lv_code_1_0= RULE_STRING ) ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2884:1: (otherlv_0= 'short' ( (lv_code_1_0= RULE_STRING ) ) )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2884:1: (otherlv_0= 'short' ( (lv_code_1_0= RULE_STRING ) ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2884:3: otherlv_0= 'short' ( (lv_code_1_0= RULE_STRING ) )
            {
            otherlv_0=(Token)match(input,57,FOLLOW_57_in_ruleShortcodeType6423); 

                	newLeafNode(otherlv_0, grammarAccess.getShortcodeTypeAccess().getShortKeyword_0());
                
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2888:1: ( (lv_code_1_0= RULE_STRING ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2889:1: (lv_code_1_0= RULE_STRING )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2889:1: (lv_code_1_0= RULE_STRING )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2890:3: lv_code_1_0= RULE_STRING
            {
            lv_code_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleShortcodeType6440); 

            			newLeafNode(lv_code_1_0, grammarAccess.getShortcodeTypeAccess().getCodeSTRINGTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getShortcodeTypeRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"code",
                    		lv_code_1_0, 
                    		"STRING");
            	    

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleShortcodeType"


    // $ANTLR start "entryRulePlainType"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2914:1: entryRulePlainType returns [EObject current=null] : iv_rulePlainType= rulePlainType EOF ;
    public final EObject entryRulePlainType() throws RecognitionException {
        EObject current = null;

        EObject iv_rulePlainType = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2915:2: (iv_rulePlainType= rulePlainType EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2916:2: iv_rulePlainType= rulePlainType EOF
            {
             newCompositeNode(grammarAccess.getPlainTypeRule()); 
            pushFollow(FOLLOW_rulePlainType_in_entryRulePlainType6481);
            iv_rulePlainType=rulePlainType();

            state._fsp--;

             current =iv_rulePlainType; 
            match(input,EOF,FOLLOW_EOF_in_entryRulePlainType6491); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRulePlainType"


    // $ANTLR start "rulePlainType"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2923:1: rulePlainType returns [EObject current=null] : (otherlv_0= 'function' () ) ;
    public final EObject rulePlainType() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;

         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2926:28: ( (otherlv_0= 'function' () ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2927:1: (otherlv_0= 'function' () )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2927:1: (otherlv_0= 'function' () )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2927:3: otherlv_0= 'function' ()
            {
            otherlv_0=(Token)match(input,58,FOLLOW_58_in_rulePlainType6528); 

                	newLeafNode(otherlv_0, grammarAccess.getPlainTypeAccess().getFunctionKeyword_0());
                
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2931:1: ()
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2932:5: 
            {

                    current = forceCreateModelElement(
                        grammarAccess.getPlainTypeAccess().getPlainTypeAction_1(),
                        current);
                

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "rulePlainType"


    // $ANTLR start "entryRuleFunctionType"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2945:1: entryRuleFunctionType returns [EObject current=null] : iv_ruleFunctionType= ruleFunctionType EOF ;
    public final EObject entryRuleFunctionType() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleFunctionType = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2946:2: (iv_ruleFunctionType= ruleFunctionType EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2947:2: iv_ruleFunctionType= ruleFunctionType EOF
            {
             newCompositeNode(grammarAccess.getFunctionTypeRule()); 
            pushFollow(FOLLOW_ruleFunctionType_in_entryRuleFunctionType6573);
            iv_ruleFunctionType=ruleFunctionType();

            state._fsp--;

             current =iv_ruleFunctionType; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleFunctionType6583); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleFunctionType"


    // $ANTLR start "ruleFunctionType"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2954:1: ruleFunctionType returns [EObject current=null] : (this_ActionType_0= ruleActionType | this_FilterType_1= ruleFilterType | this_ShortcodeType_2= ruleShortcodeType | this_PlainType_3= rulePlainType ) ;
    public final EObject ruleFunctionType() throws RecognitionException {
        EObject current = null;

        EObject this_ActionType_0 = null;

        EObject this_FilterType_1 = null;

        EObject this_ShortcodeType_2 = null;

        EObject this_PlainType_3 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2957:28: ( (this_ActionType_0= ruleActionType | this_FilterType_1= ruleFilterType | this_ShortcodeType_2= ruleShortcodeType | this_PlainType_3= rulePlainType ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2958:1: (this_ActionType_0= ruleActionType | this_FilterType_1= ruleFilterType | this_ShortcodeType_2= ruleShortcodeType | this_PlainType_3= rulePlainType )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2958:1: (this_ActionType_0= ruleActionType | this_FilterType_1= ruleFilterType | this_ShortcodeType_2= ruleShortcodeType | this_PlainType_3= rulePlainType )
            int alt81=4;
            switch ( input.LA(1) ) {
            case 55:
                {
                alt81=1;
                }
                break;
            case 56:
                {
                alt81=2;
                }
                break;
            case 57:
                {
                alt81=3;
                }
                break;
            case 58:
                {
                alt81=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 81, 0, input);

                throw nvae;
            }

            switch (alt81) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2959:5: this_ActionType_0= ruleActionType
                    {
                     
                            newCompositeNode(grammarAccess.getFunctionTypeAccess().getActionTypeParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleActionType_in_ruleFunctionType6630);
                    this_ActionType_0=ruleActionType();

                    state._fsp--;

                     
                            current = this_ActionType_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2969:5: this_FilterType_1= ruleFilterType
                    {
                     
                            newCompositeNode(grammarAccess.getFunctionTypeAccess().getFilterTypeParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleFilterType_in_ruleFunctionType6657);
                    this_FilterType_1=ruleFilterType();

                    state._fsp--;

                     
                            current = this_FilterType_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2979:5: this_ShortcodeType_2= ruleShortcodeType
                    {
                     
                            newCompositeNode(grammarAccess.getFunctionTypeAccess().getShortcodeTypeParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleShortcodeType_in_ruleFunctionType6684);
                    this_ShortcodeType_2=ruleShortcodeType();

                    state._fsp--;

                     
                            current = this_ShortcodeType_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 4 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:2989:5: this_PlainType_3= rulePlainType
                    {
                     
                            newCompositeNode(grammarAccess.getFunctionTypeAccess().getPlainTypeParserRuleCall_3()); 
                        
                    pushFollow(FOLLOW_rulePlainType_in_ruleFunctionType6711);
                    this_PlainType_3=rulePlainType();

                    state._fsp--;

                     
                            current = this_PlainType_3; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleFunctionType"


    // $ANTLR start "entryRuleFunction"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3005:1: entryRuleFunction returns [EObject current=null] : iv_ruleFunction= ruleFunction EOF ;
    public final EObject entryRuleFunction() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleFunction = null;


        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3006:2: (iv_ruleFunction= ruleFunction EOF )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3007:2: iv_ruleFunction= ruleFunction EOF
            {
             newCompositeNode(grammarAccess.getFunctionRule()); 
            pushFollow(FOLLOW_ruleFunction_in_entryRuleFunction6746);
            iv_ruleFunction=ruleFunction();

            state._fsp--;

             current =iv_ruleFunction; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleFunction6756); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleFunction"


    // $ANTLR start "ruleFunction"
    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3014:1: ruleFunction returns [EObject current=null] : ( ( (lv_type_0_0= ruleFunctionType ) ) ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '(' ( (lv_args_3_0= ruleFunctionArgumentList ) )? otherlv_4= ')' (otherlv_5= '{' ( (lv_body_6_0= RULE_STRING ) )? otherlv_7= '}' )? ) ;
    public final EObject ruleFunction() throws RecognitionException {
        EObject current = null;

        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_4=null;
        Token otherlv_5=null;
        Token lv_body_6_0=null;
        Token otherlv_7=null;
        EObject lv_type_0_0 = null;

        EObject lv_args_3_0 = null;


         enterRule(); 
            
        try {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3017:28: ( ( ( (lv_type_0_0= ruleFunctionType ) ) ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '(' ( (lv_args_3_0= ruleFunctionArgumentList ) )? otherlv_4= ')' (otherlv_5= '{' ( (lv_body_6_0= RULE_STRING ) )? otherlv_7= '}' )? ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3018:1: ( ( (lv_type_0_0= ruleFunctionType ) ) ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '(' ( (lv_args_3_0= ruleFunctionArgumentList ) )? otherlv_4= ')' (otherlv_5= '{' ( (lv_body_6_0= RULE_STRING ) )? otherlv_7= '}' )? )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3018:1: ( ( (lv_type_0_0= ruleFunctionType ) ) ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '(' ( (lv_args_3_0= ruleFunctionArgumentList ) )? otherlv_4= ')' (otherlv_5= '{' ( (lv_body_6_0= RULE_STRING ) )? otherlv_7= '}' )? )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3018:2: ( (lv_type_0_0= ruleFunctionType ) ) ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '(' ( (lv_args_3_0= ruleFunctionArgumentList ) )? otherlv_4= ')' (otherlv_5= '{' ( (lv_body_6_0= RULE_STRING ) )? otherlv_7= '}' )?
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3018:2: ( (lv_type_0_0= ruleFunctionType ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3019:1: (lv_type_0_0= ruleFunctionType )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3019:1: (lv_type_0_0= ruleFunctionType )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3020:3: lv_type_0_0= ruleFunctionType
            {
             
            	        newCompositeNode(grammarAccess.getFunctionAccess().getTypeFunctionTypeParserRuleCall_0_0()); 
            	    
            pushFollow(FOLLOW_ruleFunctionType_in_ruleFunction6802);
            lv_type_0_0=ruleFunctionType();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getFunctionRule());
            	        }
                   		set(
                   			current, 
                   			"type",
                    		lv_type_0_0, 
                    		"FunctionType");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3036:2: ( (lv_name_1_0= RULE_ID ) )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3037:1: (lv_name_1_0= RULE_ID )
            {
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3037:1: (lv_name_1_0= RULE_ID )
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3038:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleFunction6819); 

            			newLeafNode(lv_name_1_0, grammarAccess.getFunctionAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getFunctionRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            otherlv_2=(Token)match(input,46,FOLLOW_46_in_ruleFunction6836); 

                	newLeafNode(otherlv_2, grammarAccess.getFunctionAccess().getLeftParenthesisKeyword_2());
                
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3058:1: ( (lv_args_3_0= ruleFunctionArgumentList ) )?
            int alt82=2;
            int LA82_0 = input.LA(1);

            if ( (LA82_0==RULE_ID) ) {
                alt82=1;
            }
            switch (alt82) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3059:1: (lv_args_3_0= ruleFunctionArgumentList )
                    {
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3059:1: (lv_args_3_0= ruleFunctionArgumentList )
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3060:3: lv_args_3_0= ruleFunctionArgumentList
                    {
                     
                    	        newCompositeNode(grammarAccess.getFunctionAccess().getArgsFunctionArgumentListParserRuleCall_3_0()); 
                    	    
                    pushFollow(FOLLOW_ruleFunctionArgumentList_in_ruleFunction6857);
                    lv_args_3_0=ruleFunctionArgumentList();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getFunctionRule());
                    	        }
                           		set(
                           			current, 
                           			"args",
                            		lv_args_3_0, 
                            		"FunctionArgumentList");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }
                    break;

            }

            otherlv_4=(Token)match(input,48,FOLLOW_48_in_ruleFunction6870); 

                	newLeafNode(otherlv_4, grammarAccess.getFunctionAccess().getRightParenthesisKeyword_4());
                
            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3080:1: (otherlv_5= '{' ( (lv_body_6_0= RULE_STRING ) )? otherlv_7= '}' )?
            int alt84=2;
            int LA84_0 = input.LA(1);

            if ( (LA84_0==28) ) {
                alt84=1;
            }
            switch (alt84) {
                case 1 :
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3080:3: otherlv_5= '{' ( (lv_body_6_0= RULE_STRING ) )? otherlv_7= '}'
                    {
                    otherlv_5=(Token)match(input,28,FOLLOW_28_in_ruleFunction6883); 

                        	newLeafNode(otherlv_5, grammarAccess.getFunctionAccess().getLeftCurlyBracketKeyword_5_0());
                        
                    // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3084:1: ( (lv_body_6_0= RULE_STRING ) )?
                    int alt83=2;
                    int LA83_0 = input.LA(1);

                    if ( (LA83_0==RULE_STRING) ) {
                        alt83=1;
                    }
                    switch (alt83) {
                        case 1 :
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3085:1: (lv_body_6_0= RULE_STRING )
                            {
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3085:1: (lv_body_6_0= RULE_STRING )
                            // ../com.logicfish.wpbench2/src-gen/com/logicfish/wpbench2/parser/antlr/internal/InternalWpBench.g:3086:3: lv_body_6_0= RULE_STRING
                            {
                            lv_body_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleFunction6900); 

                            			newLeafNode(lv_body_6_0, grammarAccess.getFunctionAccess().getBodySTRINGTerminalRuleCall_5_1_0()); 
                            		

                            	        if (current==null) {
                            	            current = createModelElement(grammarAccess.getFunctionRule());
                            	        }
                                   		setWithLastConsumed(
                                   			current, 
                                   			"body",
                                    		lv_body_6_0, 
                                    		"STRING");
                            	    

                            }


                            }
                            break;

                    }

                    otherlv_7=(Token)match(input,29,FOLLOW_29_in_ruleFunction6918); 

                        	newLeafNode(otherlv_7, grammarAccess.getFunctionAccess().getRightCurlyBracketKeyword_5_2());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleFunction"

    // Delegated rules


 

    public static final BitSet FOLLOW_rulePlugin_in_entryRulePlugin75 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePlugin85 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_rulePlugin123 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_rulePlugin140 = new BitSet(new long[]{0x0000000000003800L});
    public static final BitSet FOLLOW_12_in_rulePlugin167 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_13_in_rulePlugin196 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_ID_in_rulePlugin229 = new BitSet(new long[]{0x0000000006004000L});
    public static final BitSet FOLLOW_rulePlatform_in_rulePlugin255 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_14_in_rulePlugin268 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_rulePlugin285 = new BitSet(new long[]{0x07800000C9FF8002L});
    public static final BitSet FOLLOW_15_in_rulePlugin303 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_rulePlugin320 = new BitSet(new long[]{0x07800000C9FF0002L});
    public static final BitSet FOLLOW_16_in_rulePlugin340 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_rulePlugin357 = new BitSet(new long[]{0x07800000C9FE0002L});
    public static final BitSet FOLLOW_17_in_rulePlugin377 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_rulePlugin394 = new BitSet(new long[]{0x07800000C9FC0002L});
    public static final BitSet FOLLOW_18_in_rulePlugin414 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_rulePlugin431 = new BitSet(new long[]{0x07800000C9F80002L});
    public static final BitSet FOLLOW_19_in_rulePlugin451 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_rulePlugin468 = new BitSet(new long[]{0x07800000C9F00002L});
    public static final BitSet FOLLOW_20_in_rulePlugin488 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_rulePlugin505 = new BitSet(new long[]{0x07800000C9E00012L});
    public static final BitSet FOLLOW_21_in_rulePlugin526 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_rulePlugin543 = new BitSet(new long[]{0x07800000C9C00012L});
    public static final BitSet FOLLOW_22_in_rulePlugin564 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_rulePlugin581 = new BitSet(new long[]{0x07800000C9800012L});
    public static final BitSet FOLLOW_23_in_rulePlugin602 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_rulePlugin619 = new BitSet(new long[]{0x07800000C9000012L});
    public static final BitSet FOLLOW_24_in_rulePlugin640 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_rulePlugin657 = new BitSet(new long[]{0x07800000C8000012L});
    public static final BitSet FOLLOW_ruleOptions_in_rulePlugin686 = new BitSet(new long[]{0x0780000088000002L});
    public static final BitSet FOLLOW_ruleOptionsPage_in_rulePlugin708 = new BitSet(new long[]{0x0780000088000002L});
    public static final BitSet FOLLOW_ruleAdminPage_in_rulePlugin730 = new BitSet(new long[]{0x0780000008000002L});
    public static final BitSet FOLLOW_ruleFunction_in_rulePlugin752 = new BitSet(new long[]{0x0780000000000002L});
    public static final BitSet FOLLOW_rulePlatform_in_entryRulePlatform790 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePlatform801 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rulePlatform839 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rulePlatform858 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAdminPage_in_entryRuleAdminPage898 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAdminPage908 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_ruleAdminPage945 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleAdminPage962 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_28_in_ruleAdminPage979 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_14_in_ruleAdminPage991 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleAdminPage1008 = new BitSet(new long[]{0x0000000020020000L});
    public static final BitSet FOLLOW_17_in_ruleAdminPage1026 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleAdminPage1043 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_29_in_ruleAdminPage1062 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOptions_in_entryRuleOptions1098 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleOptions1108 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_ruleOptions1154 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_28_in_ruleOptions1166 = new BitSet(new long[]{0x0000000020000020L});
    public static final BitSet FOLLOW_ruleOption_in_ruleOptions1187 = new BitSet(new long[]{0x0000000020000020L});
    public static final BitSet FOLLOW_29_in_ruleOptions1200 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOptionsPage_in_entryRuleOptionsPage1236 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleOptionsPage1246 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_ruleOptionsPage1283 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleOptionsPage1300 = new BitSet(new long[]{0x0000000110000000L});
    public static final BitSet FOLLOW_32_in_ruleOptionsPage1323 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_28_in_ruleOptionsPage1349 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_14_in_ruleOptionsPage1361 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleOptionsPage1378 = new BitSet(new long[]{0x0000000020000030L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleOptionsPage1400 = new BitSet(new long[]{0x0000000020000020L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleOptionsPage1427 = new BitSet(new long[]{0x0000000020000030L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleOptionsPage1445 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_29_in_ruleOptionsPage1465 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOptionType_in_entryRuleOptionType1501 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleOptionType1511 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_ruleOptionType1549 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_ruleStringOption_in_ruleOptionType1571 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_34_in_ruleOptionType1590 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_ruleTextOption_in_ruleOptionType1612 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_ruleOptionType1631 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_ruleURLOption_in_ruleOptionType1653 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_ruleOptionType1672 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_ruleIntegerOption_in_ruleOptionType1694 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_ruleOptionType1713 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_ruleFloatOption_in_ruleOptionType1735 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_ruleOptionType1754 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_ruleRangeOption_in_ruleOptionType1776 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_39_in_ruleOptionType1795 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_ruleSelectOption_in_ruleOptionType1817 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_ruleOptionType1836 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_ruleChoiceOption_in_ruleOptionType1858 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_ruleOptionType1877 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_ruleBooleanOption_in_ruleOptionType1899 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_ruleOptionType1918 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_ruleDateOption_in_ruleOptionType1940 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_ruleOptionType1960 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_44_in_ruleOptionType1978 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_ruleColourOption_in_ruleOptionType2001 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_ruleOptionType2020 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_ruleCustomOption_in_ruleOptionType2042 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFloatOption_in_entryRuleFloatOption2078 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleFloatOption2088 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleFloatOption2135 = new BitSet(new long[]{0x0003000100024000L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleFloatOption2157 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_47_in_ruleFloatOption2170 = new BitSet(new long[]{0x0002000100024000L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleFloatOption2191 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_48_in_ruleFloatOption2207 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRangeOption_in_entryRuleRangeOption2245 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRangeOption2255 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleRangeOption2302 = new BitSet(new long[]{0x0003000100024000L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleRangeOption2324 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_47_in_ruleRangeOption2337 = new BitSet(new long[]{0x0002000100024000L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleRangeOption2358 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_48_in_ruleRangeOption2374 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectOption_in_entryRuleSelectOption2414 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectOption2424 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleSelectOption2471 = new BitSet(new long[]{0x0003000100024020L});
    public static final BitSet FOLLOW_ruleSelectParam_in_ruleSelectOption2493 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_47_in_ruleSelectOption2506 = new BitSet(new long[]{0x0002000100024020L});
    public static final BitSet FOLLOW_ruleSelectParam_in_ruleSelectOption2527 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_48_in_ruleSelectOption2543 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleChoiceOption_in_entryRuleChoiceOption2581 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleChoiceOption2591 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleChoiceOption2638 = new BitSet(new long[]{0x0003000100024020L});
    public static final BitSet FOLLOW_ruleChoiceParam_in_ruleChoiceOption2660 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_47_in_ruleChoiceOption2673 = new BitSet(new long[]{0x0002000100024020L});
    public static final BitSet FOLLOW_ruleChoiceParam_in_ruleChoiceOption2694 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_48_in_ruleChoiceOption2710 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleURLOption_in_entryRuleURLOption2748 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleURLOption2758 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleURLOption2805 = new BitSet(new long[]{0x0003000100024000L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleURLOption2827 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_47_in_ruleURLOption2840 = new BitSet(new long[]{0x0002000100024000L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleURLOption2861 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_48_in_ruleURLOption2877 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleIntegerOption_in_entryRuleIntegerOption2915 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleIntegerOption2925 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleIntegerOption2972 = new BitSet(new long[]{0x0003000100024000L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleIntegerOption2994 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_47_in_ruleIntegerOption3007 = new BitSet(new long[]{0x0002000100024000L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleIntegerOption3028 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_48_in_ruleIntegerOption3044 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBooleanOption_in_entryRuleBooleanOption3082 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleBooleanOption3092 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleBooleanOption3139 = new BitSet(new long[]{0x0003000100024000L});
    public static final BitSet FOLLOW_ruleBooleanParam_in_ruleBooleanOption3161 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_47_in_ruleBooleanOption3174 = new BitSet(new long[]{0x0002000100024000L});
    public static final BitSet FOLLOW_ruleBooleanParam_in_ruleBooleanOption3195 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_48_in_ruleBooleanOption3211 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDateOption_in_entryRuleDateOption3249 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDateOption3259 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleDateOption3306 = new BitSet(new long[]{0x0003000100024000L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleDateOption3328 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_47_in_ruleDateOption3341 = new BitSet(new long[]{0x0002000100024000L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleDateOption3362 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_48_in_ruleDateOption3378 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleColourOption_in_entryRuleColourOption3416 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleColourOption3426 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleColourOption3473 = new BitSet(new long[]{0x0003000100024000L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleColourOption3495 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_47_in_ruleColourOption3508 = new BitSet(new long[]{0x0002000100024000L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleColourOption3529 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_48_in_ruleColourOption3545 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCustomOption_in_entryRuleCustomOption3583 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleCustomOption3593 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleCustomOption3640 = new BitSet(new long[]{0x0043000100024020L});
    public static final BitSet FOLLOW_ruleCustomParam_in_ruleCustomOption3662 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_47_in_ruleCustomOption3675 = new BitSet(new long[]{0x0042000100024020L});
    public static final BitSet FOLLOW_ruleCustomParam_in_ruleCustomOption3696 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_48_in_ruleCustomOption3712 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStringOption_in_entryRuleStringOption3750 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleStringOption3760 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleStringOption3807 = new BitSet(new long[]{0x0033000100024000L});
    public static final BitSet FOLLOW_ruleStringParam_in_ruleStringOption3829 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_47_in_ruleStringOption3842 = new BitSet(new long[]{0x0032000100024000L});
    public static final BitSet FOLLOW_ruleStringParam_in_ruleStringOption3863 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_48_in_ruleStringOption3879 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTextOption_in_entryRuleTextOption3917 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTextOption3927 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleTextOption3974 = new BitSet(new long[]{0x003B000100024000L});
    public static final BitSet FOLLOW_ruleTextParam_in_ruleTextOption3996 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_47_in_ruleTextOption4009 = new BitSet(new long[]{0x003A000100024000L});
    public static final BitSet FOLLOW_ruleTextParam_in_ruleTextOption4030 = new BitSet(new long[]{0x0001800000000000L});
    public static final BitSet FOLLOW_48_in_ruleTextOption4046 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_entryRuleDefaultOptionParam4084 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDefaultOptionParam4094 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_ruleDefaultOptionParam4147 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_49_in_ruleDefaultOptionParam4180 = new BitSet(new long[]{0x0004000000000010L});
    public static final BitSet FOLLOW_50_in_ruleDefaultOptionParam4193 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleDefaultOptionParam4212 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_14_in_ruleDefaultOptionParam4237 = new BitSet(new long[]{0x0004000000000010L});
    public static final BitSet FOLLOW_50_in_ruleDefaultOptionParam4250 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleDefaultOptionParam4269 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_ruleDefaultOptionParam4294 = new BitSet(new long[]{0x0004000000000010L});
    public static final BitSet FOLLOW_50_in_ruleDefaultOptionParam4307 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleDefaultOptionParam4326 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTextParam_in_entryRuleTextParam4370 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTextParam4380 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStringParam_in_ruleTextParam4427 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_51_in_ruleTextParam4450 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleStringParam_in_entryRuleStringParam4499 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleStringParam4509 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleStringParam4556 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_52_in_ruleStringParam4574 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleStringParam4591 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_53_in_ruleStringParam4616 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleStringParam4633 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleIntegerParam_in_entryRuleIntegerParam4675 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleIntegerParam4685 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleIntegerParam4731 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFloatParam_in_entryRuleFloatParam4765 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleFloatParam4775 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleFloatParam4821 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleURLParam_in_entryRuleURLParam4857 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleURLParam4867 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleURLParam4913 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBooleanParam_in_entryRuleBooleanParam4947 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleBooleanParam4957 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleBooleanParam5003 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDateParam_in_entryRuleDateParam5037 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDateParam5047 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleDateParam5093 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleColourParam_in_entryRuleColourParam5127 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleColourParam5137 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleColourParam5183 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSelectParam_in_entryRuleSelectParam5217 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSelectParam5227 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleSelectParam5274 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleChoiceFn_in_ruleSelectParam5300 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleChoiceParam_in_entryRuleChoiceParam5336 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleChoiceParam5346 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleChoiceParam5393 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleChoiceFn_in_ruleChoiceParam5419 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCustomParamFn_in_entryRuleCustomParamFn5455 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleCustomParamFn5465 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleCustomParamFn5507 = new BitSet(new long[]{0x0004000000000000L});
    public static final BitSet FOLLOW_50_in_ruleCustomParamFn5524 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleCustomParamFn5541 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCustomParam_in_entryRuleCustomParam5582 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleCustomParam5592 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDefaultOptionParam_in_ruleCustomParam5639 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_54_in_ruleCustomParam5657 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleCustomParam5674 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCustomParamFn_in_ruleCustomParam5707 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleChoiceFn_in_entryRuleChoiceFn5745 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleChoiceFn5755 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleChoiceFn5797 = new BitSet(new long[]{0x0004000000000012L});
    public static final BitSet FOLLOW_50_in_ruleChoiceFn5816 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleChoiceFn5835 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleOption_in_entryRuleOption5878 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleOption5888 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleOption5930 = new BitSet(new long[]{0x00003FFE00000000L});
    public static final BitSet FOLLOW_ruleOptionType_in_ruleOption5956 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFunctionArgumentList_in_entryRuleFunctionArgumentList5992 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleFunctionArgumentList6002 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleFunctionArgumentList6044 = new BitSet(new long[]{0x0000800000000002L});
    public static final BitSet FOLLOW_47_in_ruleFunctionArgumentList6062 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleFunctionArgumentList6079 = new BitSet(new long[]{0x0000800000000002L});
    public static final BitSet FOLLOW_ruleActionType_in_entryRuleActionType6122 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleActionType6132 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_55_in_ruleActionType6169 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleActionType6186 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleActionType6208 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFilterType_in_entryRuleFilterType6249 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleFilterType6259 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_56_in_ruleFilterType6296 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleFilterType6313 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleFilterType6335 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleShortcodeType_in_entryRuleShortcodeType6376 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleShortcodeType6386 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_57_in_ruleShortcodeType6423 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleShortcodeType6440 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePlainType_in_entryRulePlainType6481 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePlainType6491 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_58_in_rulePlainType6528 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFunctionType_in_entryRuleFunctionType6573 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleFunctionType6583 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleActionType_in_ruleFunctionType6630 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFilterType_in_ruleFunctionType6657 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleShortcodeType_in_ruleFunctionType6684 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePlainType_in_ruleFunctionType6711 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFunction_in_entryRuleFunction6746 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleFunction6756 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFunctionType_in_ruleFunction6802 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleFunction6819 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_46_in_ruleFunction6836 = new BitSet(new long[]{0x0001000000000020L});
    public static final BitSet FOLLOW_ruleFunctionArgumentList_in_ruleFunction6857 = new BitSet(new long[]{0x0001000000000000L});
    public static final BitSet FOLLOW_48_in_ruleFunction6870 = new BitSet(new long[]{0x0000000010000002L});
    public static final BitSet FOLLOW_28_in_ruleFunction6883 = new BitSet(new long[]{0x0000000020000010L});
    public static final BitSet FOLLOW_RULE_STRING_in_ruleFunction6900 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_29_in_ruleFunction6918 = new BitSet(new long[]{0x0000000000000002L});

}